こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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は好きなだけ大きい値を設定してみてよいのでしょうか?

投稿日時 - 2005-01-15 01:35:21

QNo.1168301

困ってます

質問者が選んだベストアンサー

SQL発行時であれば、ConnectionTimeoutではなくCommandTimeoutを設定してみてください。秒単位です。

参考URL:http://www.microsoft.com/japan/msdn/library/ja/jpado260/htm/mdprocommandtimeout.asp?frame=true

投稿日時 - 2005-01-15 15:27:23

お礼

ありがとうございます☆
早速この方法で試してみたところ、15分後くらいに(笑)見事にrecordsetに結果が入ってくれました☆

MicroSoftのHPにはなかなかいいネタがあるんですね☆本当にありがとうございました!!

投稿日時 - 2005-01-15 17:54:06

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

ADOのオブジェクト変数を宣言する
Dim cnn As New ADODB.Connection
Dim rec As New ADODB.Recordset

cnn.Open ・・ ' 接続を確立する

SQLステートメントを指定してレコードセットを作成する
rec.Open "select * from テーブル", cnn, _
adOpenKeyset, adLockOptimistic
でどうでしょう。

投稿日時 - 2005-01-15 14:49:17

お礼

ありがとうございます☆
recordset.open時の引数は全通り試して見ましたが、タイムアウトになってしまいました。
でも、困っているときにアドバイスいただきうれしかったです。本当にありがとうございました。

投稿日時 - 2005-01-15 17:50:01

あなたにオススメの質問