トランザクション・ロールバックの概念を持たないつくりを残した先輩がいます。以下コードにあるとおり、本日、
エラーがキャッチされ、メールが配信されました。
つくりが悪く、キャッチされたエラー詳細が 内容に含まれていませんでした。
いづれにしても、SQLServerへ該当テーブルへの挿入なり更新なりに 失敗したのだろうと データベースの実状から判断しようとしたのですが
いたって普通に レコードが登録されてしまっていました。
VB.NET
1 Using connection As New SqlConnection(cnStr) 2 Dim command1 As New SqlCommand(strSQL1, connection) 'レコード既存チェックのSQL 3 Dim command2 As New SqlCommand(strSQL2, connection) '既存レコードUPDATEのSQL 4 Dim command3 As New SqlCommand(strSQL3, connection) '新規レコード挿入のSQL 5 6 connection.Open() 7 Try 8 Dim dr As SqlDataReader = command1.ExecuteReader 9 If dr.Read Then 10 dr.Close() 11 command2.ExecuteNonQuery() 12 Else 13 dr.Close() 14 command3.ExecuteNonQuery() 15 End If 16 Catch ex As Exception 17 MAILSEND() '#処理の異常を伝えるメール送信の機能 18 End Try 19 End Using
【質問】
1: 上記の作りで DBMSにしてみれば正常だったように受け止められ Exceptionがキャッチされる要因とは 何が考えられるでしょうか
2: 上記の作りが 現況なのですが、WindowsServerのイベントログに 要因を推察できる手がかりは 記載されているものでしょうか
(イベントログの吐出し方を知りません。種類があるのかな)
事後の状況から 問題を推察せざるを得なく 皆様のご見解をいただけませんでしょうか
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/06 01:51
退会済みユーザー
2020/11/06 02:13 編集
2020/11/06 02:22
退会済みユーザー
2020/11/06 02:54