ページの先頭行へ戻る
Symfoware Server V10.0.0 アプリケーション開発ガイド(ODBCドライバ編)

C.3.11 エラー処理

エラー処理を行うサンプルコードについて説明します。

On Errorステートメントで、エラー発生時のエラー処理ルーチンを指定します。ADOを使用してODBCエラーが発生した場合、ErrorオブジェクトにSQLSTATEやエラーメッセージなどが格納されます。SQLSTATEやエラーメッセージをキーにしてエラー処理を切り分け、その後の振る舞いを決めることが可能です。

参照

エラーメッセージの対処方法は“メッセージ集”を参照してください。

ODBC以外のエラーは、Errオブジェクトにエラー情報が格納されます。ODBC以外のエラーの対処方法は、Microsoft Visual Studio .NET ドキュメントを参照してください。

本サンプルコードでは、接続文字列を間違えて入力しエラーを発生させます。

発生したエラーのメッセージとSQLSTATEをメッセージボックスに表示します。

アプリケーションの手順

  1. Connectionオブジェクトを生成します。
    (Connection. ConnectionStringプロパティに接続文字列を間違えて設定します。)

  2. On Errorステートメントを使用して、エラー処理ルーチンを設定します。

  3. Connection.Openメソッドでコネクションを接続します。
    (パスワードを間違えて指定しエラーを発生させます)

  4. エラー処理ルーチンを記述します。
    Errors.Countプロパティで格納されているErrorオブジェクト数を取得します。
    Error.DescriptionプロパティでODBCのエラーメッセージを取得します。
    Error.SQLStateプロパティでSQLSTATEを取得します。
    Error.ClearメソッドでErrorオブジェクトを削除します。
    Err.Descriptionプロパティでエラーメッセージを取得します。
    Err.ClearメソッドでErrオブジェクトを削除します。

'オブジェクト宣言
Dim Con As Connection

Dim i As Integer
Dim Err_Count As Integer
Dim msgstr As String

'1. Connectionオブジェクトの生成と設定(接続文字列を間違えて設定)
Set Con = New Connection
Con.ConnectionString = " DSN=DSN01;UID=USER01;PWD=XXXXXX;"

'2. エラー処理ルーチンの設定
On Error GoTo ErrorProc

'3. コネクション接続(エラー発生)
Con.Open

'コネクション切断
Con.Close

'オブジェクトの破棄
Set Con = Nothing

Exit Sub

'4. エラー処理ルーチン
ErrorProc:
Err_Count = Con.Errors.Count
If Err_Count > 0 Then
    For i = 0 To Err_Count - 1
        msgstr = msgstr & Con.Errors(i).Description & Chr(10)
        msgstr = msgstr & "SQLSTATE: " & Con.Errors(i).SQLState & Chr(10)
    Next
    Con.Errors.Clear
Else
    msgstr = msgstr & Err.Description
    Err.Clear
End If
MsgBox msgstr, vbOKOnly, "Error"
'オブジェクトの破棄
Set Con = Nothing