Книга: Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil

Источник данных

Источник данных

Создание компонента Data Source является отправной точкой для работы с базой данных через IBProvider. Существует несколько сценариев создания и инициализации компонента доступа. Они отличаются объемом работы, выполняемой в клиентском приложении, библиотекой доступа к OLE DB и самим IBProvider.

Вариант 1. Клиент самостоятельно осуществляет все этапы:

ADODB

Dim en As New ADODB.Connection

cn.Provider = "LCPI.IBProvider.1"

cn.Properties("data source") =

"localhost:d:databaseemployee.gdb"

en.Properties("user id") = "gamer"

en.Properties("password") = "vermut"

cn.Open

C++

t_db_data_source cn;

_THROW_OLEDB_FAILED(cn,create("LCPI.IBProvider.1"))

t_db_ob]_props cn_props(/*refresh=*/false);

_THROW_OLEDB_FAILED(cn_props,attach_data_source(en.m_obj, DBPROPSET_DBINITALL))

_THROW_OLEDB_FAILED(cn_props,set("data source" "iocalhost:d:databaseemployee. gdo")) ;

_THROW_OLEDB_FAILED(cn_props,set("user id","gamer"));

_THROW_OLEDB_FAILED(cn_props,set("password","vermut"));

_THROW_OLEDB_FAILED(en,attach(""));

Вариант 2. Создание и инициализацию выполняет клиентская библиотека:

ADODB

Dim en As New ADODB.Connection

Call en.Open("provider=LCPI.IBProvider.1; data

source=Iocalhost:d:databaseemployee.gdb", "gamer", "vermut")

C++

t_db_data_source cn;

_THROW_OLEDB_FAILED(en,attach("provider=LCPI.IBProvider.1;"

"data source=localhost:d:databaseemployee.gdb;"

"user>

Вариант 3. Провайдер создает клиентская библиотека, инициализацию выполняет сам провайдер:

ADODB

Dim en As New ADODB.Connection

Call en.Open("file name=d:databaseemployee.ibp")

C++

t_do_data_source cn;

_THROW_OLEDB_FAILED(cn,

attach!"file name=d:databaseemployee.ibp"));

//или явно указываем провайдер и файл с параметрами

_THROW_OLEDB_FAILED(en,

attach("provider=LCPI.IBProvider.1;"

"file name=d:databaseemployee.ibp"));

где "employee.ibp" - обычный текстовый файл, в котором хранится строка подключения вида

data souгсе=Iocalhost:d:databaseemployee.gdb;

user>

password=vermut

Пока OLE DB-провайдер не подключен к базе данных, параметры инициализации будут единственно доступным набором свойств. В IBProvider определены стандартные свойства инициализации и собственные, предназначенные для специанализированной настройки дальнейшей работы с базой данных. (За подробностями обращайтесь к документации по IBProvider.)

После успешного подключения к базе данных становятся доступными свойства информационного набора, с помощью которых компонент источника данных предоставляет сведения о сервере базы данных. Часть этих свойств стандартизовано спецификацией OLE DB. Остальные свойства предоставляют информацию, специфичную для IBProvider, содержащую расширенные сведения о сервере и базе данных.

Пример получения значений информационных свойств:

ADODB

'подключение к базе данных

....

'стандартные свойства

Debug.Print en.Properties("provider version")

Debug.Print en.Properties("provider friendly name")

'специфические свойства

Debug.Print en.Properties("IB Base Level")

Debug.Print en.Properties("IB GDS32 Version")

Debug.Print en Properties("IB Version")

C++

//Подключение к базе данных

//...

t_db_obj_props cn_props(false);

_THROW_OLEDB_FAILED(cn_props,

attach_data_source(cn.m_obi, DBPROPSET_DATASOURCEINFOALL));

..печать всех информационных свойств

for(UINT i = 0; i! =cn_props .GetltemsInContainer () ;+ + i)

{

cout<<cn_props[i].name()<<":"<<print(cn_props[i].value())<<endl

}

Компонент Data Source имеет еще несколько возможностей: например, сохранение параметров подключения к базе данных в файле и перечисление до- пус!имы символов для названий объектов базы данных. Однако в основном он используется для создания объектов сессий.

Оглавление книги


Генерация: 1.416. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз