- ベストアンサー
VB6.0でSQLServerへ・・・RecordSet生成タイムアウト・・・
VB6.0でSQLServer2000へADOで接続して、RecordSetに結果を入れる際に「時間切れ」になってしまいます。コネクションはちゃんとできていて(connection.stateは1)で、 RecordSet.open(SQL文,connection,adOpenForwardOnly,adLockReadOnly)でしばらく待った後「Err.description」で時間切れと言われてしまいます。connection.ConnectionTimeout = 200にしてても時間切れです・・・(涙) でで、SQLServerのlocalhost端末のAccessからSQLServerにリンクをはって同様のSQL文(普通のSelect文です、Joinも副問い合わせとかもしてないです。)をクエリで実行したところ、結果が返ってくるまで15分くらいかかりました。抽出条件にIndexを張ってないため・・・(事情があってIndexはれないです)こういう場合、どのようにしてVBでRecordSetを取得すればいいのでしょうか?ConnectiontimeoutはrecordSet取得時にも有効ですか?そうだとしたら、connectiontimeoutは好きなだけ大きい値を設定してみてよいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
SQL発行時であれば、ConnectionTimeoutではなくCommandTimeoutを設定してみてください。秒単位です。
その他の回答 (1)
- O_cyan
- ベストアンサー率59% (745/1260)
ADOのオブジェクト変数を宣言する Dim cnn As New ADODB.Connection Dim rec As New ADODB.Recordset cnn.Open ・・ ' 接続を確立する SQLステートメントを指定してレコードセットを作成する rec.Open "select * from テーブル", cnn, _ adOpenKeyset, adLockOptimistic でどうでしょう。
お礼
ありがとうございます☆ recordset.open時の引数は全通り試して見ましたが、タイムアウトになってしまいました。 でも、困っているときにアドバイスいただきうれしかったです。本当にありがとうございました。
お礼
ありがとうございます☆ 早速この方法で試してみたところ、15分後くらいに(笑)見事にrecordsetに結果が入ってくれました☆ MicroSoftのHPにはなかなかいいネタがあるんですね☆本当にありがとうございました!!