OdbcException クラス

メモ : この名前空間、クラス、およびメンバは、.NET Framework Version 1.1 だけでサポートされています。

ODBC データ ソースから警告またはエラーが返された場合に生成される例外。このクラスは継承できません。

この型のすべてのメンバの一覧については、OdbcException メンバ を参照してください。

System.Object
   System.Exception
      System.SystemException
         System.Data.Odbc.OdbcException

<Serializable>
NotInheritable Public Class OdbcException   Inherits SystemException
[C#]
[Serializable]
public sealed class OdbcException : SystemException
[C++]
[Serializable]
public __gc __sealed class OdbcException : public SystemException
[JScript]
public
   Serializable
class OdbcException extends SystemException

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

このクラスは、サーバーが生成したエラーを OdbcDataAdapter が検出するたびに作成されます。クライアント側のエラーは、標準の共通言語ランタイム例外として発生します。このクラスには、常に、 OdbcError のインスタンスが少なくとも 1 つ含まれます。

エラーの重大度レベルが非常に高い場合は、サーバーが OdbcConnection を閉じることがあります。ただし、ユーザーは接続を再び開いて、処理を継続できます。

使用例

[Visual Basic, C#, C++] データ ソースが見つからないために発生する OdbcException を生成し、その例外を表示する例を次に示します。

 
Public Sub ShowOdbcException()
    Dim mySelectQuery As String = "SELECT column1 FROM table1"
    Dim myConnection As New OdbcConnection _
       ("DRIVER={SQL Server};SERVER=MyServer;Trusted_connection=yes;DATABASE=northwind;")
    Dim myCommand As New OdbcCommand(mySelectQuery, myConnection)
    Try
        myCommand.Connection.Open()
    Catch e As OdbcException
        Dim errorMessages As String
        Dim i As Integer

        For i = 0 To e.Errors.Count - 1
            errorMessages += "Index #" & i.ToString() & ControlChars.Cr _
                           & "Message: " & e.Errors(i).Message & ControlChars.Cr _
                           & "NativeError: " & e.Errors(i).NativeError.ToString() & ControlChars.Cr _
                           & "Source: " & e.Errors(i).Source & ControlChars.Cr _
                           & "SQL: " & e.Errors(i).SQLState & ControlChars.Cr
        Next i

       Dim log As System.Diagnostics.EventLog = New System.Diagnostics.EventLog()
       log.Source = "My Application"
       log.WriteEntry(errorMessages)
       Console.WriteLine("An exception occurred. Please contact your system administrator.")
    End Try
End Sub

[C#] 
public void ShowOdbcException() 
{
   string mySelectQuery = "SELECT column1 FROM table1";
   OdbcConnection myConnection =
      new OdbcConnection("DRIVER={SQL Server};SERVER=MyServer;Trusted_connection=yes;DATABASE=northwind;");
   OdbcCommand myCommand = new OdbcCommand(mySelectQuery,myConnection);
   try 
   {
      myCommand.Connection.Open();
   }
   catch (OdbcException e) 
   {
     string errorMessages = "";

     for (int i=0; i < e.Errors.Count; i++)
     {
         errorMessages += "Index #" + i + "\n" +
                          "Message: " + e.Errors[i].Message + "\n" +
                          "NativeError: " + e.Errors[i].NativeError.ToString() + "\n" +
                          "Source: " + e.Errors[i].Source + "\n" +
                          "SQL: " + e.Errors[i].SQLState + "\n";
     }

     System.Diagnostics.EventLog log = new System.Diagnostics.EventLog();
     log.Source = "My Application";
     log.WriteEntry(errorMessages);
     Console.WriteLine("An exception occurred. Please contact your system administrator.");
   }
}

[C++] 
public:
    void ShowOdbcException()
    {
        String* mySelectQuery = S"SELECT column1 FROM table1";
        OdbcConnection* myConnection = new OdbcConnection(S"DRIVER= {SQL Server};SERVER=MyServer;Trusted_connection=yes;DATABASE=northwind;");
        OdbcCommand* myCommand = new OdbcCommand(mySelectQuery, myConnection);
        try
        {
            myCommand->Connection->Open();
        }
        catch (OdbcException* e)
        {
            String* errorMessages = S"";

            for (int i=0; i < e->Errors->Count; i++)
            {
                errorMessages = String::Concat(
                    S"Index #: ", __box(i), S"\n",
                    S"Message: ", e->Errors->Item[i]->Message, S"\n",
                    S"NativeError: ", e->Errors->Item[i]->NativeError, S"\n",
                    S"Source: ", e->Errors->Item[i]->Source, S"\n",
                    S"SQL: ", e->Errors->Item[i]->SQLState, S"\n");
            }

            System::Diagnostics::EventLog* log = new System::Diagnostics::EventLog();
            log->Source = S"My Application";
            log->WriteEntry(errorMessages);
            Console::WriteLine(S"An exception occurred. Please contact your system administrator.");
        }
    };

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Data.Odbc

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System.Data (System.Data.dll 内)

参照

OdbcException メンバ | System.Data.Odbc 名前空間 | OdbcError | OdbcErrorCollection