다음을 통해 공유


OdbcConnection 클래스

데이터 소스에 대해 열려 있는 연결을 나타냅니다.

네임스페이스: System.Data.Odbc
어셈블리: System.Data(system.data.dll)

구문

‘선언
Public NotInheritable Class OdbcConnection
    Inherits DbConnection
    Implements ICloneable
‘사용 방법
Dim instance As OdbcConnection
public sealed class OdbcConnection : DbConnection, ICloneable
public ref class OdbcConnection sealed : public DbConnection, ICloneable
public final class OdbcConnection extends DbConnection implements ICloneable
public final class OdbcConnection extends DbConnection implements ICloneable

설명

OdbcConnection 개체는 연결 문자열이나 ODBC DSN(데이터 소스 이름)을 사용하여 생성된 데이터 소스에 대한 고유한 연결을 나타냅니다. 클라이언트/서버 데이터베이스 시스템에서는 서버에 대한 네트워크 연결에 해당합니다. 네이티브 ODBC 드라이버가 지원하는 기능에 따라 OdbcConnection 개체의 일부 메서드나 속성을 사용할 수 없습니다.

OdbcConnection 개체는 ODBC 환경과 연결 핸들 같은 네이티브 리소스를 사용합니다. OdbcConnection 개체가 범위를 벗어나기 전에 Close 또는 Dispose를 호출하거나, Using 문 내에 연결을 배치함으로써 열려 있는 모든 OdbcConnection 개체를 항상 명시적으로 닫아야 합니다. 이렇게 하지 않으면 이러한 네이티브 리소스의 해제가 가비지 수집에 맡겨지므로 리소스 해제가 즉시 이루어지지 않을 수도 있습니다. 이에 따라 내부 드라이버는 결국 리소스를 다 써버리거나 최대 한도에 도달하게 되어 산발적인 오류가 발생할 수 있습니다. 예를 들어, 가비지 수집기에서 여러 개의 연결이 삭제를 위해 대기하고 있는 동안 Maximum Connections 관련 오류가 발생할 수 있습니다. 연결을 명시적으로 닫으면 네이티브 리소스를 보다 효율적으로 사용할 수 있으므로 확장성이 향상되고 전반적인 응용 프로그램 성능이 개선됩니다.

참고

고성능 응용 프로그램을 배포하려면 대부분 연결 풀링을 사용해야 합니다. 그러나 .NET Framework Data Provider for ODBC를 사용하는 경우, 공급자가 이를 자동으로 관리하기 때문에 연결 풀링을 사용할 필요가 없습니다.

OdbcCommand 클래스의 Execute 메서드 중 하나에서 심각한 OdbcException(예: SQL Server 심각도 수준이 20 이상인 경우)이 발생하면 OdbcConnection이 닫힐 수 있습니다. 그러나 사용자는 연결을 다시 열고 계속할 수 있습니다.

OdbcConnection 개체의 인스턴스를 만드는 응용 프로그램은 선언적 또는 명령적 보안 요청을 설정하여 모든 직접적 호출자와 간접적 호출자가 코드에 대해 충분한 권한을 가지도록 요구할 수 있습니다. OdbcConnectionOdbcPermission 개체를 사용하여 보안 요청을 합니다. 사용자는 OdbcPermissionAttribute 개체를 사용하여 이 코드가 충분한 권한을 가졌는지 여부를 확인할 수 있습니다. 또한 사용자와 관리자는 코드 액세스 보안 정책 도구(Caspol.exe)를 사용하여 컴퓨터, 사용자 및 엔터프라이즈 수준의 보안 정책을 수정할 수 있습니다. 자세한 내용은 코드 액세스 보안 및 ADO.NET을 참조하십시오.

데이터 소스에서의 경고와 정보 메시지 처리에 대한 자세한 내용은 연결 이벤트 사용를 참조하십시오.

예제

다음 예제에서는 OdbcCommandOdbcConnection을 만듭니다. OdbcConnection이 열리고 Connection 속성으로 설정됩니다. 그런 다음 예제에서는 ExecuteNonQuery를 호출하고 연결을 닫습니다. 이를 수행하려면 ExecuteNonQuery는 연결 문자열과 SQL INSERT 문인 쿼리 문자열에 전달됩니다.

Private Sub InsertRow(ByVal connectionString As String)

    Dim queryString As String = _
        "INSERT INTO Customers (CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')"
    Dim command As New OdbcCommand(queryString)

    Using connection As New OdbcConnection(connectionString)
        command.Connection = connection
        connection.Open()
        command.ExecuteNonQuery()

        ' The connection is automatically closed at 
        ' the end of the Using block.
    End Using
End Sub
static private void InsertRow(string connectionString)
{
    string queryString = 
        "INSERT INTO Customers (CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')";
    OdbcCommand command = new OdbcCommand(queryString);

    using (OdbcConnection connection = new OdbcConnection(connectionString))
    {
        command.Connection = connection;
        connection.Open();
        command.ExecuteNonQuery();

        // The connection is automatically closed at 
        // the end of the Using block.
    }
}

상속 계층 구조

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

스레드로부터의 안전성

이 형식의 모든 public static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

플랫폼

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1에서 지원

참고 항목

참조

OdbcConnection 멤버
System.Data.Odbc 네임스페이스

기타 리소스

데이터 소스에 연결