SQL Server Native Client 데이터 원본 개체(OLE DB)
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)
Important
SQL Server Native Client(약칭 SNAC)는 SQL Server 2022(16.x) 및 SSMS(SQL Server Management Studio) 19에서 제거되었습니다. SQL Server Native Client OLE DB 공급자(SQLNCLI 또는 SQLNCLI11)와 레거시 Microsoft OLE DB Provider for SQL Server(SQLOLEDB)는 모두 새로운 개발에 권장되지 않습니다. 앞으로 SQL Server용 새 Microsoft OLE DB 드라이버(MSOLEDBSQL)로 전환합니다.
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 메서드가 호출될 때까지 연결이 유지됩니다.