SQLのUPDATEについて

解決


ガオ〜  2015-12-25 18:35:18  No: 47834  IP: 192.*.*.*

こんばんは。
Delphi 7 Enterpriseの初心者です。
下記のようにADOCommandを利用してOracle DatabaseのTESTテーブルの
PART2フィールドを更新するプログラムを作成しました。
********************************************
with ADOCommand1 do
begin
  CommandText := 'UPDATE TEST SET PART1 = 1 WHERE PART2 = :param1';

  CommandType := cmdText;
  parameters.ParamByName('param1').Value := 'aaa';
  Execute;

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

そこでご質問ですが
更新に成功したレコード数を知りたいのですが、
取得する方法はありますでしょうか?

編集 削除
igy  2015-12-25 19:02:51  No: 47835  IP: 192.*.*.*

ちなみに、その ADOCommand には、RowsAffected プロパティは、ありますか?

編集 削除
ガオ〜  2015-12-26 09:51:20  No: 47836  IP: 192.*.*.*

igyさん、お返事ありがとうございました。
確認しましたが
ADOComamndには  RowsAffected プロパティがありませんでした。

編集 削除
igy  2015-12-26 10:58:47  No: 47837  IP: 192.*.*.*

では、
TADOCommand を使わずに、
TADOQuery を使い、RowsAffected プロパティで、更新された行数を確認するのは、いかがですか?

編集 削除
ガオ〜  2015-12-26 12:13:00  No: 47838  IP: 192.*.*.*

igyさんアドバイスありがとうございます。
データベースへの更新処理は今までTADOCommandしか使用していなかったので
TADOQueryを使ってどのように更新するのかわかりません。
例文をいただけると助かるのですが・・・

編集 削除
igy  2015-12-26 14:14:23  No: 47839  IP: 192.*.*.*

Googleなどで、
Delphi TADOQuery 使い方
とかで検索したら、参考になるサイトとか、見つかりませんか?

編集 削除
ガオ〜  2015-12-27 11:30:01  No: 47840  IP: 192.*.*.*

igyさん、アドバイスありがとうございます。

xxx

に書き込みがありました。
ところで、TADOCommand と  TADOQuery の違いはなにでしょうか。

編集 削除
igy  2015-12-27 12:18:35  No: 47841  IP: 192.*.*.*

> ところで、TADOCommand と  TADOQuery の違いはなにでしょうか。

それぞれ、ヘルプファイルでご確認ください。

なお、ADOに限らず、他のツール(FireDAC, IBXなど)で、 SQL 文を実行する場合、
TxxQuery(xxのところはそれぞれのツール固有の文字)という名称で、
コンポーネントが用意されていることが多いです。

編集 削除
ガオ〜  2015-12-28 11:15:24  No: 47842  IP: 192.*.*.*

igyさん、アドバイスありがとうございました。

編集 削除