ADOCommandの更新について

解決


OPPO  2020-10-12 16:24:38  No: 149262

お世話様です。
以下のコードを実行したのですが、
連続で2回実行したところ
1回目はデータ更新されたのですが2回目が更新されませんでした。
何が原因なのでしょうか?

          with ADOCommand1 do
          begin
            CommandText := 'UPDATE TM_TEST  '
                         + 'SEIBAN = :SEIBAN '
                         + 'WHERE HINBAN = :IN_HINBAN ';
            CommandType := cmdText;
            Parameters.ParamByName('IN_HINBAN').Value := Trim(hinban.Text);
            Parameters.ParamByName('IN_SEIBAN').Value := Trim(seiban.Text);
            Execute;

            CommandText := 'COMMIT';
            CommandType := cmdText;
            Execute;
        end;

Delphi EX5 Enterprise
Windows8.1 Pro
Oracle 12c database
を使用しております。
お手数をおかけしますが教えて頂ければ幸いでございます。


igy  2020-10-12 19:26:53  No: 149263

ADOCommand を使わずに、ADOQueryを使い、
トランザクションは、ADOConnectionのBeginTrans・CommitTrans・RollbackTrans などを使った場合も、
同じ結果になりますか?


OPPO  2020-10-13 15:22:23  No: 149264

igy様ご対応ありがとうございます。
今まではINSERT、DELETE、UPDATEは全てADOCommandを利用していました。
ADOQueryでのコーディング方法(更新)がわからないので
ネットをみてコーディングしていたのですがわかりませんでした。
どのようにすればよいのでしょうか。


OPPO  2020-10-14 08:38:38  No: 149265

igy様おはようございます。
ADOQueryでのコーディングが結局わかりませんでしたので
ストアドプロシージャを利用して
なんとか解決しました。
ADOQueryでのupdate文のコーディングは今後の課題です。


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加