데이터 원본 개체(OLE DB)

SQL Server Native Client에서는 SQL Server와 같은 데이터 저장소에 연결할 때 사용되는 OLE DB 인터페이스 집합에 데이터 원본이라는 용어를 사용합니다. SQL Server Native Client 소비자의 첫 번째 태스크는 공급자의 데이터 원본 개체 인스턴스를 만드는 것입니다.

각 OLE DB 공급자는 자체적으로 사용할 CLSID(클래스 식별자)를 선언합니다. SQL Server Native Client OLE DB 공급자의 CLSID는 C/C++ GUID CLSID_SQLNCLI10이며, SQLNCLI_CLSID 기호는 참조할 대상 sqlncli.h 파일에 있는 올바른 progid로 확인됩니다. CLSID가 있으면 소비자는 OLE CoCreateInstance 함수를 사용하여 데이터 원본 개체의 인스턴스를 만듭니다.

SQL Server Native Client는 in-process 서버입니다. SQL Server Native Client OLE DB 공급자 개체의 인스턴스는 실행 가능 콘텐츠를 나타내기 위해 CLSCTX_INPROC_SERVER 매크로를 사용하여 만들어집니다.

SQL Server Native Client OLE DB 공급자 데이터 원본 개체는 소비자가 기존 SQL Server 데이터베이스에 연결하는 데 사용할 수 있는 OLE DB 초기화 인터페이스를 노출합니다.

SQL Server Native Client OLE DB 공급자를 통해 설정되는 모든 연결에는 다음과 같은 옵션이 자동으로 설정됩니다.

  • SET ANSI_WARNINGS ON

  • SET ANSI_NULLS ON

  • SET ANSI_PADDING ON

  • SET ANSI_NULL_DFLT_ON ON

  • SET QUOTED_IDENTIFIER ON

  • SET CONCAT_OF_NULL_YIELDS_NULL ON

이 예에서는 클래스 식별자 매크로를 사용하여 SQL Server Native Client OLE DB 공급자 데이터 원본 개체를 만들고 IDBInitialize 인터페이스에 대한 참조를 가져옵니다.

IDBInitialize*   pIDBInitialize;
HRESULT          hr;

hr = CoCreateInstance(CLSID_SQLNCLI10, NULL, CLSCTX_INPROC_SERVER,
    IID_IDBInitialize, (void**) &pIDBInitialize);

if (SUCCEEDED(hr))
{
    //  Perform necessary processing with the interface.
    pIDBInitialize->Uninitialize();
    pIDBInitialize->Release();
}
else
{
    // Display error from CoCreateInstance.
}

SQL Server Native Client OLE DB 공급자 데이터 원본 개체의 인스턴스가 성공적으로 만들어지면 소비자 응용 프로그램에서는 데이터 원본을 초기화하고 세션을 만들어 작업을 계속할 수 있습니다. OLE DB 세션은 데이터 액세스 및 조작을 가능하게 하는 인터페이스를 제공합니다.

데이터 원본이 성공적으로 초기화되면 SQL Server Native Client OLE DB 공급자는 초기화의 일부로 지정된 SQL Server 인스턴스에 처음 연결합니다. 이 연결은 데이터 원본 초기화 인터페이스에 대한 참조가 유지되는 동안이나 IDBInitialize::Uninitialize 메서드가 호출될 때까지 유지됩니다.