sqlserverでの更新で時間切れのメッセージが表示されます。

解決


佐々木  2010-04-22 02:27:40  No: 38326

Delphi2010+SqlServer2005で開発してます。

更新する際、
100件くらいなら問題ないのですが、
1000件ぐらいになると、
更新するときに
 
例外クラス EOleException 
(メッセージ 'クエリ タイムアウトが時間切れになりました')を送出しました。

というメッセージが表示されます。

いろいろ調べた結果、AdoConnectionのCommandTimeout、ConnectionTimeoutの値を変えると解決しそうだったので、
値を0にしてやってみたのですが、未だ解決できません。

クエリは
BEGIN TRAN
update 〜
update 〜
update 〜
×件数
COMMIT
という具合で発行してます。 

どうかご教授お願いします。


DEKO  2010-04-22 04:38:23  No: 38327

こんにちは。

1.タイムアウトしないように、テーブルに最適なインデックスを付与する。
  (Update の Where 句を参考にして)

2.TADOConnection.CommandTimeout ではなく、
  TADOQuery.CommandTimeout を設定する (0 ではなく時間を)。

この 2 点を試してみてはいかがでしょうか?


佐々木  2010-04-23 03:33:55  No: 38328

インデックスの追加で現象が起こらなくなりました。
DEKOさん、ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加