- - PR -
ADO.NET の CommandTimeout について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-11-07 14:22
お世話になります。
VB.NET + SQL Server 2000 です。 下記の現象が出ており、どうしてこのような挙動になるのかわからないので アドバイスをお願いします。 sql = "SELECT * FROM TEST_TABLE" cmd = New SqlCommand(sql, db.con) cmd.CommandTimeout = 0 da = New SqlDataAdapter(cmd) ds = New DataSet da.Fill(ds, "test_table") このようなコードがありますが、da.Fill(ds, "test_table") の部分で タイムアウトします。 cmd.CommandTimeout = 0 と設定してあるので、無制限に待つのかと思いきや da.Fill を実行してすぐ(1、2秒で)タイムアウトの例外となってしまいます。 その SQL を クエリアナライザで実行したところ、1、2秒程度で応答がある程度の レコード件数です。 ここで、 cmd.CommandTimeout = 600 のように、明示的に大きな値を設定したところ、問題なく動作するように なりました。 CommandTimeout の説明には、 [0 は、制限なしを示します。ただし、コマンド実行の試行が永久的に待機されるため、CommandTimeout では使用しないでください。] とありますが、上記のコードでは上述の通り、すぐにタイムアウトし、 値を設定した場合は、正常に処理が実行されました。 この挙動について理解できずにおります、何か勘違いをしておりますでしょうか? アドバイスを頂けますと幸いです、よろしくお願い致します。 |
1