2011-06-21 15 views
0

私はSQL Serverデータベースを使用しています。単純なSQLスクリプトを呼び出した後、スクリプト内で最後に実行されたステートメントの影響を受けたレコード数を知りたいと思います。TADOCommandで挿入/変更されたレコードの数をチェックする方法は?

DelphiのTADOCommandでこれを実現する方法がわかりません.SQL Serverはこの情報をプロバイダに提供しています。私は別のクエリで@@ ROWCOUNTを得るような回避策を認識していますが、これはいくつかのオーバーヘッドと不必要な複雑さをもたらします。

ありがとうございました。

答えて

2

あなたは、Executeメソッドの

function Execute(var RecordsAffected: Integer; const Parameters: OleVariant): _Recordset; 

バージョンを使用していますか? docから

:コマンドは実行後コマンド の影響を受けている データ、上で動作している場合

と、RecordsAffectedは、レコード数 を示します。

これで、必要なものが得られます。

免責事項:これはSQL Serverに対してはテストできません(持っていない)。

+0

答えをいただきありがとうございます。私はこの一連の議論を認識していませんでした。私はちょうどチェックしたとして 生憎、影響を受けるレコード変数はまだ0です後に実行:( CMD:= TADOCommand.Create(ゼロ); cmd.Commandtext:= '無効。DELETE FROM'; RA:= 0を; cmd.Execute(ra、0); アサート(ra> 0); – too

+1

「DELETE FROM void」とは何ですか?そして実際にはどのレコードも実際に影響を受けていますか? –

+0

voidはテーブル名の例です。このステートメントはテーブル[dbo]。[void]からすべてのレコードを削除します。テーブルにレコードがあることを確認し、単純なアプリケーションでもテストしました。 – too

関連する問題