DB環境:Microsoft SQL Server 2005
VBScriptで大量のデータ(何百万件ぐらい)を削除するバッチを作成しようと思っています。
Set objConn = CreateObject("ADODB.Connection") ・・・(中略)・・・ objConn.Execute "delete XXX〜〜"
でやると、やはり「時間切れになりました」と怒られました。
=================================
ConnectionTimeoutを使ってみましょう:
=================================
Set objConn = CreateObject("ADODB.Connection")
objConn.ConnectionTimeout = 600
・・・(中略)・・・
objConn.Execute "delete XXX〜〜"
という感じで1行を追加しましたが、全く効きませんでした。
=================================
やはり「ADODB.Command」を使わないといけないみたいですね:
=================================
タイムアウト時間の設定方法を教えてください –DAO、ADO、SQL & Access フォーラム–
↑を参考させていただきました。「ADODB.Command」を使うのが正解ですね。
という感じで、
Set objConn = CreateObject("ADODB.Connection") Set objCmd = CreateObject("ADODB.Command") objConn.ConnectionTimeout = 600 objCmd.CommandTimeout = 600 ・・・(中略)・・・ objCmd.ActiveConnection = objConn objCmd.CommandText = "delete XXX〜〜" objCmd.Execute
で実行すると、無事にタイムアウトせず正常終了しました。
おかげさまです。