ほとんど意味は分かっていないのですが、カスタマイズしたDELETE文で正常に削除が完了しました。
こちらが自動で生成されたsql文
DELETE FROM [M_その他休業日]
WHERE ([No] = ?) AND (? = 1 AND 休業 IS NULL OR
休業 = ?) AND (? = 1 AND 月 IS NULL OR
月 = ?) AND (? = 1 AND 日 IS NULL OR
日 = ?) AND (? = 1 AND 事由 IS NULL OR
事由 = ?) AND (? = 1 AND 継続 IS NULL OR
継続 = ?) AND (? = 1 AND 登録日 IS NULL OR
登録日 = ?)
これがカスタマイズ途中のsql文です。
DELETE FROM [M_その他休業日]
WHERE (月 = '1' AND 月 IS NULL OR 月 = ?) AND
(日 = '1' AND 日 IS NULL OR 日 = ?) AND
(事由 = '1' AND 事由 IS NULL OR 事由 = ?)
作成済みのデータから、レコードを一意で取り出せる項目だけを並べたものです。
”?”の意味が、選択されたデータが入るのだろうぐらいにしかわかっていません。
**='1' AND も外して良さそうなのですが・・・
試したら、ちゃんと動きました。
こんなテーブル構造なら、

DELETE FROM [M_その他休業日]
WHERE (月 IS NULL OR
月 = ?) AND (日 IS NULL OR
日 = ?) AND (事由 IS NULL OR
事由 = ?)
で削除できました。
日付/時刻型の登録日も同じ構文で構わないのか、試してみます。
DELETE FROM [M_その他休業日]
WHERE (月 IS NULL OR
月 = ?) AND (日 IS NULL OR
日 = ?) AND (事由 IS NULL OR
事由 = ?) AND (登録日 IS NULL OR
登録日 = ?)
上記の構文で正常に削除されました。
これで、OKなら、データの型を意識しなくて済むので、すごく楽です。
編集結果の反映は、これで出来ました。
UPDATE [M_その他休業日]
SET 休業 = ?, 月 = ?, 日 = ?, 事由 = ?, 継続 = ?, 登録日 = ?
WHERE (月 IS NULL OR
月 = ?) AND (日 IS NULL OR
日 = ?) AND (事由 IS NULL OR
事由 = ?) AND (登録日 IS NULL OR
登録日 = ?)
最近のコメント