СУБД Interbase (Firebird)
Чтобы построить приложение с использованием DBFSQL для Interbase
его нужно слинковать с библиотекой libclip-interbase.so
Для подключения к серверу используйте конструктор класса TConnect
в следующем синтаксисе:
ConnectNew("IB",NIL,NIL,<login>,<pwd>,[<dbname>],
NIL,NIL,NIL,[<cIsolation>]), где
"IB" - строка, идентифицирующая СУБД Interbase;
<login> - логин пользователя;
<pwd> - пароль пользователя;
<dbname> - имя базы данных;
<cIsolation> - уровень изоляции по умолчанию.
Для указания поля-идентификатора записи для связи набора записей TRowset
с физической таблицей базы данных в функции TConnect:CreateRowset()
предусмотрен параметр <idname>. Для полноценной работы
с набором (с возможностью отражения производимых изменений набора
записей в базе данных) в список запрашиваемых полей запроса SELECT
следует явно включать зто поле.
Кроме того, в функции TConnect:CreateRowset() предусмотрен параметр
<gen_idSQL> с запросом к генератору уникальных идентификаторов
СУБД Interbase. Это необходимо в случаях, когда вновь добавляемые
при помощи TRowset:Append() и TRowset:insertSQL записи предполагается
редактировать. В этом случае не следует делать триггер BEFORE INSERT.
Значения параметра <cIsolation> для ConnectNew() и TConnect:Start()
могут состоять из одной или нескольких из нижеследующих строк, разделенных
символом ';':
"CONCURRENCY"
"READ COMMITTED" или "READ_COMMITTED"
"REC VERSION" или "REC_VERSION"
"NO REC VERSION" или "NO_REC_VERSION"
"CONSISTENCY"
"WAIT"
"NOWAIT"
"READ"
"WRITE"
(Об уровнях изоляции и параметрах транзакций читайте документацию по Interbase).
Кроме того, функция TConnect:Start() может принимать второй параметр-строку
с параметрами блокировки отдельных таблиц. Эта строка должна иметь вид:
<table_name>=<lock_type>[;<table_name>=<lock_type>,...], где
<table_name> - имя таблицы которую нужно заблокировать на время транзакции;
<lock_type> - тип блокировки; возможны следующие типы:
"SHARED_READ"
"SHARED_WRITE"
"PROTECTED_READ"
"PROTECTED_WRITE"
Например:
// начать транзакцию с уровнем изоляции READ COMMITTED,
// только для чтения,
// с блокировкой таблицы MYTABLE
conn:Start("READ COMMITTED;READ ONLY","MYTABLE=PROTECTED_WRITE")