Шаг 4 - Связь с OLEDB провайдером

Для того, чтобы связаться с OLEDB провайдером нужно пройти несколько этапов и получить объект Session.

4.gif (991 b)

Для получения объекта данных необходимо вызвать функцию CoCreateInstance(). Эта функция вернет указатель на объект Data Source.

CoCreateInstance(CLSID_MailProvider, 0, CLSCTX_LOCAL_SERVER, IID_IDBInitialize, (void**) &pIDBInit);

Обратите внимание на то, что все объекты OLEDB провайдеров - это COM объекты и мы связываемся с OLEDB провайдером на основе его CLSID, который должен быть занесен в реестр. После создания объекта он находится в неинициалированном состоянии.

Пример.

 
// Step4OLEDB.cpp : Defines the entry point for the console application.
// Step by Step Site 
// http://www.firststeps.ru
// Kaev Artem 2000

#define INITGUID
#define DBINITCONSTANTS

#include "stdafx.h"
#include "iostream.h"
#include "oledb.h" // OLE DB файлы
#include "oledberr.h" 
const GUID CLSID_MSDASQL = {0xC8B522CBL,0x5CF3,0x11CE,{0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D}};


void main()
{
	// Инициализация COM
	if (FAILED( CoInitialize(NULL) ))
	{
		cout << "Unable to initialize COM" << endl;
		return;
	}

	IDBInitialize *pIDBInitialize  = NULL;
	HRESULT hr;
	hr=CoCreateInstance(CLSID_MSDASQL,NULL,CLSCTX_INPROC_SERVER,
		IID_IDBInitialize,(void**)&pIDBInitialize);
	if (FAILED(hr)) 
	{
		cout << "CoCreateInstance Failed" << endl;
		return;
	}

	pIDBInitialize->Release();
	// Деинициализация COM
	CoUninitialize();
};

Для того, чтобы создать OLEDB провайдера необходимо запустить VC++ и создать новый проект на основе Console application.

GUID провайдера я взял из заголовочного файла для доступа OLEDB ODBC.


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 10.06.2001