OLE DB Provider Guide (v11)

Execute メソッド(ADO コマンド) (OLE DB プロバイダー)

Pervasive OLE DB プロバイダーを使用している場合、Command オブジェクトの Execute メソッドでは、操作の種類に基づいて RecordsAffected パラメーターが異なる結果を返します。

SELECT オペレーション

SELECT ステートメントを実行している場合、RecordsAffected は -1(マイナス 1)を返し、このオプションがサポートされていないことを示します。たとえば、次のようにします。

cn.Open "Provider=PervasiveOLEDB;Data Source=TestData;" 
SQLst = "Select * From MyData" 
cmd.ActiveConnection = cn 
cmd.CommandText = SQLst 
Set rs = cmd.Execute(RecordsAffected) 

この場合、RecordsAffected は -1 になります。

SELECT クエリが返すレコード数を取得したい場合は、次の例のように RecordCount プロパティを使用します。

recordcount = rs.RecordCount 
' Mydata のレコード数 

バッチ挿入、更新および削除

RecordsAffected は、バッチ挿入、更新および削除を実行したときに、オペレーションが影響した正確なレコード数を返します。

例 - バッチ挿入

cn.Open "Provider=PervasiveOLEDB;Data Source=TestData;" 
SQLst = "Insert into MyData(utinyint_, usmallint_, 
uinteger_, ubigint_, char_, character_, bit_) Values 
(1, 12, 13, 100, 'testdata', 'chardata', 1)" 
cmd.ActiveConnection = cn 
cmd.CommandText = SQLst 
cmd.Execute RecordsAffected 

この場合、RecordsAffected は 1 になります。

例 - バッチ更新

SQLst = "Update MyData set char_ = 'SampleTest'  where 
uinteger_ = 13" 
     cmd.ActiveConnection = cn 
     cmd.CommandText = SQLst 
     cmd.Execute RecordsAffected 

この場合、RecordsAffected は 13 という値を持つすべてのレコード数に相当する x になります。


COM+ サービスのサポート (OLE DB プロバイダー)

ADO/OLE DB リファレンス情報