0

いくつかのコードでクエリを実行する必要があります。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 を設定してそれを介して接続できます。

最悪の場合はすべてページ付けしますが、今は面倒です。クエリがタイムアウトする可能性があるため、論理的にはそのタイムアウトも設定する方法があるはずです。それが何であるかを知りたいです。

4

1 に答える 1