Программирование Базы данных
| |
DPB
это обычный char
массив объявленный в приложении, который
следующую структуру:
-
Первый байт, определяет версию
буфера параметров, и равен определенной в ibase.h
константе isc_dpb_version1.
-
Далее идет длинный ряд состоящий
из одного или нескольких
кластеров байт. Каждый
кластер описывает отдельный параметр.
Кластер состоит в свою
очередь из нескольких частей:
-
Первый байт кластера определяет
параметр который будет описываться далее
в кластере. Этот байт равен одной из
констант – идентификаторов параметров
объявленных в ibase.h
(например, константа isc_dpb_num_buffers
говорит, что после нее последует
определение числа буферов кэша БД).
-
Второй байт кластера содержит
число, определяющее размер параметра в
байтах.
-
Далее следует сам параметр
который может занимать несколько байт.
Число этих байт и указывает предыдущий
байт. (это может быть, например, число или
строка символов, \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 символов
|
Число
байт в строке
|
Строка
содержащая имя пользователя
|
[ << Назад ] [ Содержание ] [ Далее >> ]
|