0

ストアド プロシージャを呼び出して ADO レコードセットを生成していますが、出力する前にデータを更新できるようにしたいと考えています (ただし、これらの更新を DB に書き戻すことはできません)。

これは可能ですか?

カーソルとロックの種類をいくつか試しましたが、すぐにエラーになるか、レコードセット フィールドを更新しようとするとエラーになります。

io_oRecordSet.CursorLocation = adUseClient
io_oRecordSet.Open oDataCmd, , adOpenStatic, adLockOptimistic, adCmdStoredProc
... iterate through RS ...
io_oRecordSet("myCol").value = "foo"

これは次のエラーを生成します

Microsoft カーソル エンジン エラー '80040e21'

複数ステップの操作でエラーが発生しました。各ステータス値を確認してください。

私が見てきたことから、ADO は DB の更新方法がわからないため、データがストアド プロシージャから取得されることを好まないのではないかと思います。

4

1 に答える 1

1

データベースを更新する必要がまったくない場合は、切断された Recordsetを使用できます。必ずクライアント側カーソルを使用し、Recordsetを開いた後にそのActiveConnectionプロパティをに設定してください。Nothing

于 2013-03-28T07:30:05.730 に答える