掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VB.NET からAccessへUPDATE文で更新時の問題 (ID:148033)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>>また、その時の ExecuteNonQuery の戻り値はどうなっていましたか? > 更新できないレコードの分だけ0になっていました。 今回は、ステップ実行しても 0 になったということですか? だとしたら、その時点のデータもしくは条件文のいずれかに問題があるように 思います。0 件更新時の SQL 文を、そのまま Microsoft Access 上から 実行した場合は、何件更新されるのでしょうか? > ループで1件ずつ処理するより そもそも何件ずつ更新する処理なのかは、質問文からは読み取れなかったりします。(^_^;) どんな SQL を発行しているのかすら分からないのですし。 いずれにせよ、パラメーター化しようとしまいと、 ループ回数は 1000 回のままとなるはずですし、 むしろ SQL 全体としては短くなるはず。 > WHERE句で一括で更新したほうがよいという意味と思ったので、 パラメータクエリーを推奨したのは、 ・パラメータ化することで、SQL Injection 問題も誘発せずに済む。 ・パラメータの型を明示できるため、型変換問題を生じにくい。 というメリットがあるためです。 繰り返し回数が多い場合においては、指定する値が違うだけで SQL 自体は同じ構文と言う状態なら、パラメータ化した方が 処理効率が良いはずです。 逆に、VB 側で動的に WHERE 条件を作らざるを得ないような 複雑な処理の場合は、パラメーター化しにくいのですけれどね。 > WHERE以降の条件A or B or C or・・・・と1000件分の > SQL文で処理しようとした場合 A〜Z だと 26 条件になってしまうというツッコミはさておき。 個々の A や B や C がどんな処理なのか分からないので、 そのやり方が適切かどうかは分かりませんが、SQL があまりに 長文になるという状況は好ましく無いでしょうね。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.