■4121 / ) |
Re[4]: mdb(OleDb)の更新ができない その2 |
□投稿者/ hikaru (12回)-(2007/06/06(Wed) 22:12:34)
|
■No4043 (はつね さん) に返信 はつねさん、御礼が遅れてすいませんでした。
はつねさんのおっしゃる通り、CommandBuilderを使いました。 見事、更新処理が成功しました。(たいしたことではないのですよね、すいません) それと、当たり前ですが、UPDATE文ではなくDELETE文とINSERT文が必要みたいです。 ご指摘ありがとうございます。
そこで、勉強のため、CommandBuilderで自動生成されたSQL文を調べたいのですが、何か調べる方法はありますでしょうか? 教えていただけると、とてもありがたいです。
> ■No4042 (hikaru さん) に返信 >>CommandBuilderではなく、UPDATE文で更新をしたいと思います。 >>わがままかもしれませんが、UPDATE文で教えていただけるとありがたいです。 > > CommandBuilder使って生成されたUPDATE文調べるのが近道だと思いますよ。 > たぶん、予想もしていなかったUPDATE文のWHERE句になっているのではないでしょうか。 > > CommandBuilderを使わずにという選択をするのは自由ですが、DataAdapterを使う場合、SELECT文に対応したUPDATE文のWHERE句の書き方がある、つまり、あるSELECT文で検索したものに対しては、どんなUPDATE文を組み立てなくてはいけないかが決まっているようなものですから、そのあたりはCommandBuilderを学習教材として利用して、自動生成されたSQL文を理解して編集して流用するなどの事も必要です。 > 特に、自分で指定したUPDATE文で起こるはずのない同時実行違反などが起こるのであれば、SELECT文で取得したDataSetを使ってUpdateメソッドを実行するときにDataAdapterが期待しているUPDATE文とは異なるものを指定している可能性が高いです。 > > なお、DataAdapterのUpdateメソッドでは、DataSetの更新内容によってはUPDATE文ではなくDELETE文とINSERT文が実行されるときもありますからUPDATE文だけではなくINSERT文やDELETE文も仕込んでおく必要もあります。 >
|
|