OdbcConnection クラス

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

データ ソースへの開いた接続を表します。

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

System.Object
   System.MarshalByRefObject
      System.ComponentModel.Component
         System.Data.Odbc.OdbcConnection

NotInheritable Public Class OdbcConnection
   Inherits Component
   Implements ICloneable, IDbConnection
[C#]
public sealed class OdbcConnection : Component, ICloneable,
   IDbConnection
[C++]
public __gc __sealed class OdbcConnection : public Component,
   ICloneable, IDbConnection
[JScript]
public class OdbcConnection extends Component implements
   ICloneable, IDbConnection

スレッドセーフ

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

解説

OdbcConnection オブジェクトは、接続文字列または ODBC のデータ ソース名 (DSN) を使用して作成した一意のデータ ソース接続を表します。クライアント/サーバー データベース システムでは、サーバーへのネットワーク接続に相当します。ネイティブの ODBC ドライバがサポートする機能によっては、 OdbcConnection オブジェクトの一部のメソッド、またはプロパティが利用できないこともあります。

OdbcConnection オブジェクトは、ODBC の環境や接続ハンドルなどのネイティブ リソースを使用します。 OdbcConnection オブジェクトが適用範囲外になる前に、必ず Close または Dispose を呼び出して、開いている OdbcConnection オブジェクトを明示的に閉じる必要があります。これを実行しないと、このオブジェクトが使用していたネイティブ リソースの解放はガベージ コレクションが行うことになるため、リソースがすぐに解放されない可能性があります。その結果、基になるドライバでリソースが不足したり最大制限に到達して、エラーが発生することがあります。たとえば、ガベージ コレクションによる削除を待っている接続が多数存在する場合に、 Maximum Connections 関連のエラーが発生する場合があります。 Close または Dispose を呼び出すことによって明示的に接続を閉じると、ネイティブ リソースをより効率的に使用でき、拡張性およびアプリケーション全体のパフォーマンスが向上します。

メモ   パフォーマンスの高いアプリケーションを配置するには、必要に応じて接続プールを使用します。ただし、.NET Framework Data Provider for ODBC を使用する場合は、プロバイダが接続プールを自動的に管理するため、この機能を有効にする必要はありません。接続プールの有効化および無効化の詳細については、Microsoft Open Database Connectivity (ODBC) のドキュメントを参照してください。

OdbcCommand クラスのいずれかの Execute メソッドを実行した結果、致命的な OdbcException (SQL Server の重大度レベル 20 以上など) が発生した場合、 OdbcConnection が閉じる可能性があります。ただし、ユーザーは接続を再び開いて、処理を継続できます。

OdbcConnection オブジェクトのインスタンスを作成するアプリケーションは、宣言セキュリティまたは強制セキュリティの要求を設定することによって、直接的または間接的な呼び出し元すべてに対して、コードへの適切なアクセス許可を要求できます。 OdbcConnection は、 OdbcPermission オブジェクトを使用して、セキュリティ要求を作成します。ユーザーは、 OdbcPermissionAttribute オブジェクトを使用して、コードに適切なアクセス許可が設定されているかどうかを確認できます。また、ユーザーおよび管理者は、Code Access Security Policy Tool (Caspol.exe) を使用して、コンピュータ、ユーザー、エンタープライズの各レベルでセキュリティ ポリシーを変更できます。詳細については、「 アプリケーションの保護 」を参照してください。

データ ソースから受け取る警告メッセージと情報メッセージの処理の詳細については、「 接続イベントの使用 」を参照してください。

使用例

[Visual Basic, C#, C++] OdbcCommandOdbcConnection を作成する例を次に示します。 OdbcConnection を開き、 OdbcCommand.Connection プロパティとして設定します。次に、 ExecuteNonQuery を呼び出し、接続を閉じます。この例では、 ExecuteNonQuery に、接続文字列と SQL INSERT ステートメントのクエリ文字列が渡されます。

 
Public Sub InsertRow(myConnection As String)
    ' If the connection string is null, use a default.
    If myConnection = "" Then
        myConnection = "DRIVER={SQL Server};SERVER=MyServer;Trusted_connection=yes;DATABASE=northwind;"
    End If
    Dim myConn As New OdbcConnection(myConnection)
    Dim myInsertQuery As String = "INSERT INTO Customers (CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')"
    Dim myOdbcCommand As New OdbcCommand(myInsertQuery)
    myOdbcCommand.Connection = myConn
    myConn.Open()
    myOdbcCommand.ExecuteNonQuery()
    myOdbcCommand.Connection.Close()
End Sub

[C#] 
public void InsertRow(string myConnection) 
{
   // If the connection string is null, use a default.
   if(myConnection == "") 
   {
      myConnection = "DRIVER={SQL Server};SERVER=MyServer;Trusted_connection=yes;DATABASE=northwind;";
   }
   OdbcConnection myConn = new OdbcConnection(myConnection);
   string myInsertQuery = "INSERT INTO Customers (CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')";
   OdbcCommand myOdbcCommand = new OdbcCommand(myInsertQuery);
   myOdbcCommand.Connection = myConn;
   myConn.Open();
   myOdbcCommand.ExecuteNonQuery();
   myOdbcCommand.Connection.Close();
}

[C++] 
public:
    void InsertRow(String* myConnection)
    {
        // If the connection string is null, use a default.
        if (myConnection->Equals(S""))
        {
            myConnection = S"DRIVER= {SQL Server};SERVER=MyServer;Trusted_connection=yes;DATABASE=northwind;";
        }
        OdbcConnection* myConn = new OdbcConnection(myConnection);
        String* myInsertQuery = S"INSERT INTO Customers (CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')";
        OdbcCommand* myOdbcCommand = new OdbcCommand(myInsertQuery);
        myOdbcCommand->Connection = myConn;
        myConn->Open();
        myOdbcCommand->ExecuteNonQuery();
        myOdbcCommand->Connection->Close();
    };

[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 内)

参照

OdbcConnection メンバ | System.Data.Odbc 名前空間 | OdbcDataAdapter | OdbcCommand