SQL Server データベースにレコードを挿入するためのレコードセットを構築する際、WHERE 句が行を返さないという点で SELECT を実行する前例があります。この空白のレコードセットは、データベースにコミットされる前に埋められます。これのポイントは、クライアントの列定義を取得することです。
例:
SELECT * From TableA where key_column = 0
データベースでトレースを行っているときに、このメソッドが 2 つのステートメントを実行することに気付きました。
列のメタデータを取得するもの...
SET FMTONLY ON SELECT * From TableA where key_column = 0 SET FMTONLY OFF
...そして、私たちが意図したオリジナルの選択。
メタデータのみが必要であることを考慮して、VB6 内から Recordset を構築するときに最初のステートメントのみを実行する方法はありますか?
(レコードセットの代わりに INSERT ステートメントを使用するのが最も効率的であることは承知しています。)