DELETE Table_1.F_Num FROM Table_1 WHERE Table_1.F_Num Between 15 And 20;
SQLExecDirect: SELECT "dbo"."Table_1"."ID" FROM "dbo"."Table_1" WHERE ("F_Num" BETWEEN 15 AND 20 ) SQLPrepare: SELECT "ID","F_Num","F_Date","F_Text","F_TS" FROM "dbo"."Table_1" WHERE "ID" = ? SQLExecute: (GOTO BOOKMARK) SQLPrepare: DELETE FROM "dbo"."Table_1" WHERE "ID" = ? SQLExecDirect: DELETE FROM "dbo"."Table_1" WHERE "ID" = ? SQLExecute: (GOTO BOOKMARK) SQLPrepare: DELETE FROM "dbo"."Table_1" WHERE "ID" = ? SQLExecDirect: DELETE FROM "dbo"."Table_1" WHERE "ID" = ?条件にマッチするレコードの主キーのみをまず取得。ここでレコード数が0であれば終了。そのあと、1レコードずつフェッチしながら削除を繰り返す流れ。
データシート ビューなどフォームでレコードを削除するときはこんな感じになる。
SQLExecute: (GOTO BOOKMARK) SQLPrepare: DELETE FROM "dbo"."Table_1" WHERE "ID" = ? AND "F_Num" = ? AND "F_Date" = ? AND "F_Text" = ? SQLExecute: (DELETE)TIMESTAMP 列があれば使用される。
表示が更新されたことを気付かない場合があるから注意が必要なんだろう。レコードは削除しなくてもいいはずだし。
0 件のコメント:
コメントを投稿