学習プログラムの大部分は、操作のためにデータベースに接続する必要があります。これがエラーです。新しいテクノロジーチャネルの編集者は、OLEDBを使用してストレージプロセスでレコードセットを返すことはできません。興味のある友達が次の記事にアクセスして詳細をご覧ください!
ストアドプロシージャでOLEDBメソッドでレコードセットを返すことができないのはなぜですか?
私はかつて一時的なテーブルで動作するプログラムを書きました(主な関数は、各カテゴリの上位10レコードを取得することです)。
このストアドプロシージャは、ODBCを使用してデータベースに接続すると正常であり、正しい結果を得ることができます。ただし、OLEDBメソッドを使用して接続する場合、レコードセットを返すことができず、操作がレコードセットに戻るとエラーメッセージが表示されます。
adodb.RecordSetエラー '800A0E78'
オブジェクトが閉じている場合、アプリケーションによって要求された操作は許可されません。
それは私を困惑させました。何故ですか?
これは、OLEDBとODBCの間に違いがあるためです。つまり、ASPがODBCからレコードセットを取得すると、ODBCが作成テーブルをフィルタリングするためです
または、挿入には、ポジションを占有するが操作を実行できないレコードセットを生成します。 ASPがOLEDB、OLEDBにセットされたレコードを取得するとき
これらのレコードセットは除外されていません。したがって、ストアドプロシージャのレコードを返したくない前に、Set NoCountを実行する必要があります。
ストアドプロシージャは、レコードセットを返すことを禁止されています。そして、レコードセットを返すときは、最初にSet nocountをオフにする必要があります。このようにして、問題は解決されます。
文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文の編集者