掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
複数項目をSQL文でParamByNameを使って更新するするには? (ID:35189)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
例に出されているSQLは、サンプルでしょうか? もしも、このSQLをそのまま実行している場合は、SQLエラーで落ちていると思われます。 例えば >ADOQuery1.SQL.Add('UPDATE Name_Table'); >ADOQuery1.SQL.Add('SET '); >ADOQuery1.SQL.Add('区分名称 = :_区分名称,'); このSQLは 「UPDATE Name_TableSET 区分名称 = :_区分名称,」 となってしまい、テーブル名とSETがくっついた状態になってしまいます。 まずは、ここから確認してください。 >ParamByName(バインド変数).タイプですが、.タイプは.ValueしかVCLでは選択できません。 >VCLの補完機能を無視して直接『.Integer』とかを入力しないといけませんか? すいません。 「.Value」にて入力してください。 確認もせず前回、回答してしまいました。申し訳ないです。 ※Value以外にも方法がある・・・?無知な為この方法しかしりません。 また、タイプを設定する場合は >ADOQuery1.Parameters.ParamByName('B_NAME').DataType := ftString; の様に設定が可能です。 ※DB関係でエラーが出た場合は、バグ出しが難しいですよね。 SQLのミスなのか、ParamByName等の記述ミスなのか・・・ とりあえず自分が使っているバグ発見の方法は Memo1.Lines.Add(ADOQuery1.SQL.Text); try //SQL 実行 ADOQuery1.Open; //または ADOQuery1.ExecSQL; except on E : Exception do begin ShowMessage('失敗!' + #10#13 + E.Message); Exit; end; end; みたいな感じでSQL文の確認とエラー時のメッセージを確認するだけで、解決の糸口が見つかるかもしれません。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.