Главная ]
1.1.2.Создание и заполнение DPB
Программирование
Базы данных



DPB это обычный char массив объявленный в приложении, который следующую структуру:

  1. Первый байт, определяет версию буфера параметров,   и равен определенной в ibase.h константе isc_dpb_version1.

  2. Далее идет длинный ряд состоящий из одного или нескольких  кластеров байт. Каждый  кластер описывает отдельный параметр.

Кластер состоит в свою очередь из нескольких частей:

  1. Первый байт кластера определяет параметр который будет описываться далее в кластере. Этот байт равен одной из констант – идентификаторов параметров объявленных в ibase.h  (например, константа isc_dpb_num_buffers говорит, что после нее последует определение числа буферов кэша БД).

  2. Второй байт кластера содержит число, определяющее размер параметра в байтах.

  3. Далее следует сам параметр который может занимать несколько байт. Число этих байт и указывает предыдущий байт. (это может быть, например, число или строка символов, \0 не считается для строки символов и не входит в строковый параметр).

К примеру, следующий код создает DPB c одним параметром, который описывает число буферов кэша, используемых при соединении с БД.

char dpb_buffer[256], *dpb,;

short dpb_length;

/* Создание буфера параметров базы данных. */

dpb = dpb_buffer;/*длина буфера*/

dpb++ = isc_dpb_version1; /* версия буфера параметров БД */

dpb++ = isc_num_buffers; /*говорит что далее пойдет описание параметра числа буферов*/

dpb++ = 1; /* в кластере остается 1 байт */

dpb++ = 90; /*  этот байт содержит число 90 */

dpb_length = dpb - dpb_buffer;/*длина буфера */

Обратите внимание: Все числа в буфере параметров базы данных должны быть представлены в универсальном формате, сначала идет самый младший байт, потом старшие по возрастанию. Числа со знаком должны иметь признак знака в последнем байте (старшем). Можно использовать функцию isc_vax_integer () которая меняет порядок байт на обратный (см. Приложение) .

Следующая таблица содержит константы идентификаторов параметров, которые можно передать в  DPB для получения каких – то специфических характеристик соединения с БД

Идентификация пользователя

Имя пользователя isc_dpb_user_name
Пароль  isc_dpb_password
Зашифрованный пароль isc_dpb_password_enc
Название роли isc_dpb_sql_role_name
Имя администратора системной БД isc_dpb_sys_user_name
Авторизированный ключ для лицензии isc_dpb_license
Зашифрованный ключ БД isc_dpb_encrypt_key

Управление средой

Число буферов кэша

 isc_dpb_num_buffers

dbkey context scope

isc_dpb_dbkey_scope

Управление системой

Синхронная  или асинхронная запись в БД (т.е. писать на диск сразу, или покоптить в памяти)

isc_dpb_force_write

Определяет резервировать или нет небольшое место на каждой странице БД для хранения старых версий модифицированных записей когда модификации уже сделаны

isc_dpb_no_reserve

Определяет, должна БД быть помечена как поврежденная или нет

isc_dpb_damaged

Выполнять последовательно проверку внутренних структур

isc_dpb_verify

Управление теневым файлом БД

Активизировать теневой файл БД, который необязателен, но является синхро-копией БД

 isc_dpb_activate_shadow

Удалять теневой файл БД

isc_dpb_delete_shadow

Управление системой регистрации

Активизировать управление системой регистрации, для слежения за всеми запросами к БД

isc_dpb_begin_log

Деактивировать систему регистрации

isc_dpb_quit_log

Спецификация файла сообщений и символьной кодировки

Языковая спецификация файла сообщений

 isc_dpb_lc_messages

Используемая кодировка

 isc_dpb_lc_ctype

Следующая таблица показывает DPB параметры в алфавитном порядке.

 

Параметр

Назначение

Длина

Значение

isc_dpb_activate_shadow

Директива активации теневого файла БД, синхрокопии БД,  которая необязательна.

1(Игнорируется)

0(Игнорируется)

isc_dpb_damaged

Число определяющее помечать или нет БД как поврежденную

1 = помечать как поврежденную

0 = непомечать

 

1

 

0 или 1

isc_dpb_dbkey_scope

Scope of dbkey context. 0 limits scope to the current1 transaction, 1 extends scope to the database session

 

1

 

0 или 1

isc_dpb_delete_shadow

Указание удалить теневой файл БД который больше не нужен

1(Игнорируется)

0(Игнорируется)

isc_dpb_encrypt_key

Строка шифрования ключа, до 255 байт

Число байт в строке

Строка содержащая ключ

isc_dpb_force_write

Определяет синхронная или асинхронная запись будет в БД

0 = асинхронная

1 =синхронная

1

0 или 1

isc_dpb_lc_ctype

Строка опрделяющая набор символов для использования

Число байт в строке

Строка содержит название набора символов

isc_dpb_lc_messages

Строка определяющая язык файла сообщений

Число байт в строке

Строка содержащая название файла сообщеней

isc_dpb_license

Строка содержащая ключ к программной лицензии

Число байт в строке

Строка содержащая ключ

isc_dpb_no_reserve

Определяет резервировать или нет немного места на каждой странице БД для хранеия устаревших версий записей которые были модифицированы. keep backup versions on the same page as the primary record to optimize update activity

0(по умолчанию) = резервировать

1= не резервировать

1

0 или 1

isc_dpb_num_buffers

 Число буферов кэша выделенных для использования с БД;

По умолчанию 75

1

Число выделенных буферов

isc_dpb_password

Строка пароля, до 255 символов

Число байт в строке

Строка содержащая пароль

isc_dpb_password_enc

Строка шифрованного пароля, до 255 символов

Число байт в строке

Строка содержащая пароль

isc_dpb_sys_user_name

Строка системного DBA, до 255 символов

Число байт в строке

Строка содержащая имя SYSDBA

isc_dpb_user_name

Строка имени пользователя, до 255 символов

Число байт в строке

Строка содержащая имя пользователя

 

<< Назад ] Содержание ] Далее >> ]

Дизайн: Piton Alien
Rambler's Top100 Рейтинг@Mail.ru
Сайт создан в системе uCoz