掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
複数項目をSQL文でParamByNameを使って更新するするには? (ID:35192)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
エラーがでないといわれているのでSQLの構文に問題はなくExecSQLは正常に終了していると理解します。 (サンプルでは SETの前, WHEREの前 , ANDの前後にスペースがありませんが、実際はあると理解します。 スペースがなければ構文エラーでExecSQLを通過しないはず) この程度のパラメータクエリが正常に動かないということは考えられません。 「区分名称」と「名称区分」の無いサンプルDBをACCESSで作成して「ももさん」のコーディングを コピーして実行してみましたがパラメータクエリできちんと更新されました。 通常、DBエンジンがエラーを出さない場合、DB処理としては100%正常に処理されています。 それなのに思った結果が得られないのは、与えているデータ側に問題がある場合が大半です。 既に確認済みで問題ないと分かっているのならゴメンナサイですが、与えているデータが正常か確認してみましたか?。 WHERE条件に合致する(UPDATE対象)のデータは実際に存在しますか? WHERE条件のパラメータに与えるデータは間違っていませんか? 対象デーががない時、UPDATE文は正常に終了しますが、当然なにも起こりません。 あるいはパラメータに与えたデータがが間違っている時、上の場合と同様に何も処理されないか、 または、与えたデータ通りに処理されているのに、プログラマー側は思い込みで違うデータを見て処理されていないと判断している(なーんて言うこともちょくちょくあります) g2_int_wk はどこからくるデータか分かりませんが、思ったとおりの正常なデータが渡されていますか? ExecSQLの行にブレークポイントを設定して、パラメータとして渡すデータが正常か確認してみたらどうですか。 SQL文そのものには問題なさそうなので、SQL処理以外のどこかに、思い込みとか勘違いが入り込んでいるような気がします。 ところで、DBは何をお使いでしょうか? 老婆心ながら、SET句の >ADOQuery1.SQL.Add('名称№ = :_名称№,'); は不要なのでは? 害にはなりませんが、WHERE句での検出条件と同じ内容でUPDATEするのは無意味です。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.