環境はVb6 WindowsXPHomeEditionです。
ADOでconnection.Execute やconnection.Openを使ってUPDATEやDELETEのSQLを実行したときに
レコード何行分に影響があったか知ることができないんでしょうか。
.NETにはExecuteNonQueryで実行すると戻り値として影響を受けた行数が帰ってくるようなので、こういった機能を探しています。
DELETE文が0行しか影響がなくてもSQL文として成立していればエラーが出ないので、
0行と1行の差がわかる方法がわからないので質問しました。
よろしくお願いします。
Executeメソッドの引数について調べてみて下さい。
http://www.microsoft.com/japan/msdn/data/techmat/ado/dao2ado_4.asp
より、
Sub ADOExecuteBulkOpQuery()
Dim cnn As New ADODB.Connection
Dim iAffected As Integer
'Open the connection
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\nwind.mdb;"
'Execute the query
cnn.Execute "Update Customers Set Country = 'United States' " & _
"WHERE Country = 'USA'", iAffected, adExecuteNoRecords
Debug.Print "Records Affected = " & iAffected
'Close the connection
cnn.Close
End Sub
ありがとうございます。
解決できました。
cnn.Execute で複数の引数を設定してなかったのが問題でした。
Dim str as String Dim count as long
str = SQL文 count = 影響を受けたレコード数が入る
cnn.Execute SQL,count と書いて解決しました。
ありがとうございました。
| ツイート |
|