2011-06-21 79 views
0

我正在使用SQL Server數據庫,並且在調用一個簡單的SQL腳本之後,我想知道有多少記錄受到腳本中最後(或唯一)執行語句的影響。如何檢查TADOCommand中插入/修改的記錄數量?

我找不到引用如何在Delphi的TADOCommand中實現這一點,我知道SQL Server將這些信息提供給提供者。我意識到在另一個查詢中獲得@@ ROWCOUNT之類的解決方法,但這會產生一些開銷和不必要的複雜性。

謝謝。

回答

2

你使用

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

版本Execute方法的?

doc

RecordsAffected指示的記錄數 ,如果命令上 數據,由該命令 執行後影響操作。

因此,應該給你你需要的東西。

聲明:我無法對SQL Server進行測試(沒有它)。

+0

感謝您的回答,我不知道這一套論據。 可惜的是,因爲我剛剛檢查,受影響的記錄變量仍然是0後,執行:( CMD:= TADOCommand.Create(無); cmd.Commandtext:= 'DELETE FROM無效'; RA:= 0 ; cmd.Execute(ra,0); Assert(ra> 0); – too

+1

什麼是'DELETE FROM void'應該這樣做?你確定有任何記錄實際上受到影響嗎? –

+0

void是一個示例表名,所以語句刪除了table [dbo]中的所有記錄[void]。我確信表中有記錄,我也在簡單的應用程序中測試過它。 – too

相關問題