FirebirdSQL logo
Введение 

Введение

Это руководство описывает объектно-ориентированную версию API Firebird4.0.

Данный документ является переводом файла doc/Using_OO_API.html,который входит в поставку Firebird.

Описываемые интерфейсы находятся в файлеinclude/firebird/FirebirdInterface.idl. С помощью инструмента CLOOP наоснове этого IDL файла можно сгенерировать файл интерфейсов дляконкретного языка программирования (IdlFbInterfaces.h илиFirebird.pas).

CLOOP — Cross Language Object Oriented Programming. Этот инструмент невходит в поставку Firebird. Его можно найти в исходных кодахhttps://github.com/FirebirdSQL/firebird/tree/master/extern/cloop.После того как инструмент будет собран, можно сгенерировать API для вашегоязыка программирования.

Для Object Pascal файл с объектным API генерируется следующей командой:

cloop FirebirdInterface.idl pascal Firebird.pas Firebird --uses SysUtils \
  --interfaceFile Pascal.interface.pas \
  --implementationFile Pascal.implementation.pas \
  --exceptionClass FbException --prefix I \
  --functionsFile fb_get_master_interface.pas

Файлы Pascal.interface.pas, Pascal.implementation.pas иfb_get_master_interface.pas можно найти по адресуhttps://github.com/FirebirdSQL/firebird/tree/master/src/misc/pascal.

Note

В данном случае для интерфейсов Firebird API будет добавлен префикс I,так как это принято в Object Pascal.

В полученном файле Firebird.pas отсутствуют isc_* константы. Этиконстанты для языков C/C++ можно найти под адресуhttps://github.com/FirebirdSQL/firebird/blob/B4_0_Release/src/include/consts_pub.h.Для получения констант для языка Pascal воспользуемся AWK скриптом дляпреобразования синтаксиса. В Windows вам потребуется установить Gawk forWindows или воспользоваться Windows Subsystem for Linux (доступно вWindows 10). Это делается следующей командой:

awk -f Pascal.Constants.awk consts_pub.h > const.pas

Содержимое полученного файла необходимо скопировать в пустую секциюconst файла Firebird.pas сразу после implementation. ФайлPascal.Constants.awk, можно найти по адресуhttps://github.com/FirebirdSQL/firebird/tree/B4_0_Release/src/misc/pascal.