데이터 원본 개체(OLE DB)
적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
OLE DB Driver for SQL Server는 SQL Server와 같은 데이터 저장소에 대한 링크를 설정하는 데 사용되는 OLE DB 인터페이스 집합에 데이터 원본이라는 용어를 사용합니다. 공급자의 데이터 원본 개체 인스턴스를 만드는 것은 OLE DB Driver for SQL Server 소비자의 첫 번째 작업입니다.
모든 OLE DB 공급자는 CLSID(클래스 식별자)를 자체 선언합니다. OLE DB Driver for SQL Server의 CLSID는 C/C++ GUID CLSID_MSOLEDBSQL(참조하는 msoledbsql.h 파일에서 기호 MSOLEDBSQL_CLSID 올바른 progid로 확인됨). CLSID를 사용하면 소비자는 OLE CoCreateInstance
함수를 사용하여 데이터 원본 개체의 인스턴스를 제조합니다.
OLE DB Driver for SQL Server는 In-process 서버입니다. OLE DB Driver for SQL Server 개체의 인스턴스는 실행 가능한 컨텍스트를 나타내기 위해 CLSCTX_INPROC_SERVER 매크로를 사용하여 만들어집니다.
OLE DB Driver for SQL Server 데이터 원본 개체는 소비자가 기존 SQL Server 데이터베이스에 연결할 수 있도록 하는 OLE DB 초기화 인터페이스를 노출합니다.
OLE DB Driver for SQL Server를 통해 수행된 모든 연결은 다음 옵션을 자동으로 설정합니다.
- 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
이 예제에서는 클래스 식별자 매크로를 사용하여 OLE DB Driver for SQL Server 데이터 원본 개체를 만들고 해당 IDBInitialize
인터페이스에 대한 참조를 가져옵니다.
IDBInitialize* pIDBInitialize;
HRESULT hr;
hr = CoCreateInstance(CLSID_MSOLEDBSQL, 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.
}
OLE DB Driver for SQL Server 데이터 원본 개체의 인스턴스를 성공적으로 만들면 소비자 애플리케이션은 데이터 원본을 초기화하고 세션을 만들어 계속할 수 있습니다. OLE DB 세션은 데이터 액세스 및 조작을 허용하는 인터페이스를 제공합니다.
OLE DB Driver for SQL Server는 성공적인 데이터 원본 초기화의 일환으로 SQL Server의 지정된 인스턴스에 첫 번째 연결을 만듭니다. 데이터 원본 초기화 인터페이스에서 참조가 유지되거나 메서드가 호출될 때까지 연결이 IDBInitialize::Uninitialize
유지됩니다.