Date: Thu, 20 Feb 2003 15:37:01 +0900
From: "よしまる" <who@sub.example.jp>
よしまるです。
ネットワークエラーについて調査を進めたのですが、
�,�SELECT文は成功しているのですが�△�DELETE文の
発行時にConnectionエラーとなります。
これは、一旦接続されているコネクションが途中で切断され
たと思える動きです。
そんな事がありえるのでしょうか?
どなたかお知恵を授けて頂けないでしょうか?
funcDBExecuteの中では掻い摘むと以下の通りです。
-----< funcDBExecuteの内容 START >-----
If (objCn_.State Or adStateOpen) = 0 Then ''コネクションが接続していない
場合
''は、エラーとする。
Exit Function
End If
objCn_.Execute strSQL_, lngCount_, adCmdText ''SQLの実行
-----< funcDBExecuteの内容 ここまで >-----
-----< 障害発生のソース START >-----
�� strSQL(0) = "SELECT MAX(日時) FROM Cテーブル (TABLOCK HOLDLOCK)"
blnRtn = funcDBExecute(mconChild, strSQL(0), lngCnt, True, blnDeadLock_)
Do While (blnRtn = True)
strSQL(0) = "DELETE FROM Cテーブル" & _
" WHERE 日時 BETWEEN '" & strDttm & "0000' AND " & _
"'" & strDttm & "0559' "
strSQL(1) = "DELETE FROM Cテーブル" & _
" WHERE 日時 BETWEEN '" & strDttm & "0600' AND " & _
"'" & strDttm & "1159' "
strSQL(2) = "DELETE FROM Cテーブル" & _
" WHERE 日時 BETWEEN '" & strDttm & "1200' AND " & _
"'" & strDttm & "1759' "
strSQL(3) = "DELETE FROM Cテーブル" & _
" WHERE 日時 BETWEEN '" & strDttm & "1800' AND " & _
"'" & strDttm & "2359' "
For intIdx = LBound(strSQL) To UBound(strSQL)
'' Cテーブルを削除する
�� blnRtn = funcDBExecute(mconChild, strSQL(intIdx), lngCnt, True,
blnDeadLock_)
If blnDeadLock_ Then '' デッドロック発生
Call subDeadLockAlm(C_MSG_削除リトライ, "Cテーブル", _
Me.Name, "funcScan01MDelete")
End If
If blnRtn = False Then
On Error Resume Next '' エラーを無視する
If mconChild.Errors.Count > 0 Then
=====ここでエラーメッセージが出力される
Call subPutCommLogTime("vbpDatGetOnline.frmDatGetOnline.funcScan01MDelete "
& _
" Number=" & mconChild.Errors(0).Number & _
" Description =" & mconChild.Errors(0).Description)
End If
On Error GoTo skip '' エラーをトラップする
End If
'' トランザクションログ切り捨て処理
Call subLogTruncateKyk(mconChild, objClass.KyokuNo)
If blnRtn = False Then Exit For ''
Next intIdx
If strDttm >= strDttmEnd_ Then Exit Do '' 削除終了日まで終了
strDttm = Format$(DateAdd("d", 1, Mid$(strDttm, 1, C_LEN_YEAR) & "/"
& _
Mid$(strDttm, 5, C_LEN_MON) & "/"
& _
Mid$(strDttm, 7, C_LEN_DAY) & " "
& _
"00:00:00"), _
"YYYYMMDD")
Loop
funcScan01MDelete = blnRtn '' 処理結果
Exit Function
skip:
'' エラーメッセージを表示す
る
Call ErrorMsgBoxOpen(App.EXEName, Me.Name, "funcScan01MDelete")
End Function
-----< 障害発生のソース ここまで >-----
| [MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
| よろしければお困りの内容を、電子メールで教えて下さい。 |
|
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|