エラー処理を行うサンプルコードについて説明します。
On Errorステートメントで、エラー発生時のエラー処理ルーチンを指定します。ADOを使用してODBCエラーが発生した場合、ErrorオブジェクトにSQLSTATEやエラーメッセージなどが格納されます。SQLSTATEやエラーメッセージをキーにしてエラー処理を切り分け、その後の振る舞いを決めることが可能です。
参照
エラーメッセージの対処方法は“メッセージ集”を参照してください。
ODBC以外のエラーは、Errオブジェクトにエラー情報が格納されます。ODBC以外のエラーの対処方法は、Microsoft Visual Studio .NET ドキュメントを参照してください。
本サンプルコードでは、接続文字列を間違えて入力しエラーを発生させます。発生したエラーのメッセージとSQLSTATEをメッセージボックスに表示します。
アプリケーションの手順
Connectionオブジェクトを生成します。
(Connection. ConnectionStringプロパティに接続文字列を間違えて設定します。)
On Errorステートメントを使用して、エラー処理ルーチンを設定します。
Connection.Openメソッドでコネクションを接続します。
(パスワードを間違えて指定しエラーを発生させます)
エラー処理ルーチンを記述します。
Errors.Countプロパティで格納されているErrorオブジェクト数を取得します。
Error.DescriptionプロパティでODBCのエラーメッセージを取得します。
Error.SQLStateプロパティでSQLSTATEを取得します。
Error.ClearメソッドでErrorオブジェクトを削除します。
Err.Descriptionプロパティでエラーメッセージを取得します。
Err.ClearメソッドでErrオブジェクトを削除します。
'オブジェクト宣言 Dim Con As ADODB.Connection Dim i As Integer Dim Err_Count As Integer Dim msgstr As String '1. Connectionオブジェクトの生成と設定(接続文字列を間違えて設定) Con = New ADODB.Connection() Con.ConnectionString = " DSN=DSN01;UID=USER01;PWD=XXXXXX;" '2. エラー処理ルーチンの設定 On Error GoTo ErrorProc '3. コネクション接続(エラー発生) Con.Open() 'コネクション切断 Con.Close() 'オブジェクトの破棄 Con = Nothing Exit Sub '4. エラー処理ルーチン ErrorProc: Err_Count = Con.Errors.Count If Err_Count > 0 Then For i = 0 To Err_Count - 1 msgstr &= Con.Errors(i).Description & ControlChars.Cr msgstr &= "SQLSTATE: " & Con.Errors(i).SQLState & ControlChars.Cr Next Con.Errors.Clear() Else msgstr &= Err.Description Err.Clear() End If MessageBox.Show(msgstr, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) 'オブジェクトの破棄 Con = Nothing