レコードの削除方法には,検索したレコードを削除する方法(ResultSetを利用)と,DELETE文で直接削除する方法があります。
レコードの削除が完了した後でCommitメソッドを発行してデータベースの更新情報を確定させる必要があります。
レコードを検索し削除するためには,更新目的でレコードを検索する必要があります。検索されたレコードはResultSetに1レコードだけ格納され,このレコードを削除するには,Editメソッドで削除準備を指示し,Deleteメソッドで更新を指示します。複数のレコードを処理する場合には,Nextメソッドで次のレコードを読込み,この処理を繰り返す必要があります。
////////////////////////////////////////////////////////////
/// SQLの実行(削除)
DBRResultSet *pRs1(pDB1); // オブジェクトの生成
// 更新目的で検索
pRs1->Execute("SELECT F1,F2 FROM TABLE1", TYPE_EXCLUSIVE);
pRs1->Open(); // レコードの検索
while(!pRs1->IsEOF())
{
pRs1->Delete(); // 削除のためのDeleteメソッドの呼び出し
pRs1->Next(); // Nextメソッドにより次のレコードの読み込み
}
pDB1->Commit(); // トランザクションのコミット
.....
DELETE文を使ってレコードを削除できます。これは,既に削除するレコードが特定できる場合に,DELETE文で削除するレコードを指定する方法です。DELETE文を利用してレコードを削除するにはDBRDatabaseクラスのExecuteDirectメソッドを使用します。
//////////////////////////////////////////////////////////////
/// SQLの実行(削除)
pDB1->ExecuteDirect("DELETE FROM TABLE1 WHERE F1=100");
pDB1->Commit();