いくつかのコードでクエリを実行する必要があります。MSSMS でのクエリの実行には 1 分半かかります (4M 行を超える場合でも、それほど面倒ではありません)。コードでは、接続を開きます
CDatabase *base = new CDatabase () ;
base->OpenEx ("Driver={SQL Server};Server=Computer\\User;Database=base;") ;
その後、オブジェクトを作成CRecordset
してクエリを実行できます。クエリはSELECT COUNT
適切に機能します (最大 4M になります)。最初のSELECT cols
クエリ (いくつかの属性をフェッチする) は正しく機能します。それぞれCRecordset
が適切に閉じられ、清掃されています。2 番目のSELECT cols
クエリ (4M 行を返す大きな結合) は試行ごとにタイムアウトします。
クエリのタイムアウト値の設定方法、そのパラメーターの呼び出し方法、または最初に設定する場所がわかりません。接続文字列でパラメーターのさまざまな組み合わせを試し、ODBC パイロット プーリング オプションを編集してみました。別の ODBC 接続オブジェクトを使用することに興味はありませんが、直接接続文字列を使用する代わりに、DSN を設定してそれを介して接続できます。
最悪の場合はすべてページ付けしますが、今は面倒です。クエリがタイムアウトする可能性があるため、論理的にはそのタイムアウトも設定する方法があるはずです。それが何であるかを知りたいです。