Extra Systems Database Client

описание функций низкого уровня

Этот документ содержит описание функций низкого уровня для работы с ESDB через модуль database.pas. Иллюстрация практического использования большинства этих функций содержится в модуле table.pas. Сторонним разработчикам рекомендуется основывать все свои расширения на модуле database.pas, не внося в него никаких изменений (хотя условиями лицензии это и не запрещено, однако может создать для них проблемы в будущем, если Extra Systems внесет какие-либо изменения в интерфесы взаимодействия с сервером ESDB).

ESDB_COMMAND_CREATE_DATABASE

Создает новую базу данных. Необходимым условием успешного выполнения этого запроса является отсутствие на выбранном сервере базы данных с тем же именем. Используется методом CreateDatabase класса TESDBDatabase. Параметром этого вызова является имя создаваемой базы данных, содержащее полный путь. (Все вышестоящие каталоги на сервере должны существовать, ESDB их созданием не занимается; при отсутствии какого-либо из каталогов, фигурирующих в запросе, данный вызов закончится неудачей.) Метод CreateDatabase класса TESDBDatabase в дополнение к указанному параметру вызова принимает также имя сервера (зарегистрированное в системе dns, либо непосредственно IP-адрес) и порт, на прием вызовов на котором сконфигурирован сервер ESDB на целевом компьютере. В результате обработки этого вызова сервер ESDB возвращает клиенту результат в виде 32-битного целого числа: при успешном выполнении это будет ESDB_RESULT_OK, при неудаче - код ошибки.

ESDB_COMMAND_CONNECT_DATABASE

Обеспечивает подключение к созданной ранее базе данных. Для успешного завершения этого вызова запрашиваемая база данных должна существовать, а на сервере ESDB не должно быть исчерпано установленное в конфигурации число максимально допустимых одновременных соединений. Используется методом Open класса TESDBDatabase. Параметром этого вызова является имя базы данных, содержащее полный путь. Метод Open класса TESDBDatabase в дополнение к указанному параметру вызова принимает также имя сервера (зарегистрированное в системе dns, либо непосредственно IP-адрес) и порт, на прием вызовов на котором сконфигурирован сервер ESDB на целевом компьютере. В результате обработки этого вызова сервер ESDB возвращает клиенту результат в виде 32-битного целого числа: при успешном выполнении это будет ESDB_RESULT_OK, при неудаче - код ошибки.

ESDB_COMMAND_RELEASE_DATABASE

Обеспечивает отключение от базы данных, подключение к которой было ранее произведено через вызов ESDB_COMMAND_CONNECT_DATABASE.

ESDB_COMMAND_CREATE_TABLE

Обеспечивает создание новой таблицы в базе данных, подключение к которой было ранее произведено через вызов ESDB_COMMAND_CONNECT_DATABASE. Используется методом CreateTable класса TESDBDatabase. Параметрами этого вызова служат имя создаваемой таблицы (оно должно быть новым, то есть такой таблицы в текущей базе данных быть не должно) и список полей в формате TESDBFieldsList. В результате обработки этого вызова сервер ESDB возвращает клиенту результат в виде 32-битного целого числа: при успешном выполнении это будет ESDB_RESULT_OK, при неудаче - код ошибки.

ESDB_COMMAND_OPEN_TABLE

Открывает существующую таблицу в базе данных, подключение к которой было ранее произведено через вызов ESDB_COMMAND_CONNECT_DATABASE. Используется методом OpenTable класса TESDBDatabase. Параметром этого вызова служит имя открываемой таблицы. В результате обработки этого вызова сервер ESDB возвращает клиенту результат в виде 32-битного целого числа: при успешном выполнении это будет положительный указатель на таблицу (используемый при дальнейшей работе с ней), при неудаче - отрицательный код ошибки.

ESDB_COMMAND_CLOSE_TABLE

Закрывает ранее открытую через ESDB_COMMAND_OPEN_TABLE таблицу. Используется методом CloseTable класса TESDBDatabase. Параметром этого вызова служит положительный указатель на таблицу, ранее полученный в результате отработки успешного вызова ESDB_COMMAND_OPEN_TABLE. В результате обработки этого вызова сервер ESDB возвращает клиенту результат в виде 32-битного целого числа: при успешном выполнении это будет ESDB_RESULT_OK, при неудаче - код ошибки.

ESDB_COMMAND_DROP_DATABASE

Безвозвратно уничтожает созданную ранее базу данных. Для успешного завершения этого вызова запрашиваемая база данных должна существовать, и ни один клиент к ней не должен быть подключен. Используется методом DropDatabase класса TESDBDatabase. Параметром этого вызова является имя базы данных, содержащее полный путь. Метод DropDatabase класса TESDBDatabase в дополнение к указанному параметру вызова принимает также имя сервера (зарегистрированное в системе dns, либо непосредственно IP-адрес) и порт, на прием вызовов на котором сконфигурирован сервер ESDB на целевом компьютере. В результате обработки этого вызова сервер ESDB возвращает клиенту результат в виде 32-битного целого числа: при успешном выполнении это будет ESDB_RESULT_OK, при неудаче - код ошибки.

ESDB_COMMAND_DATABASE_LOCAL_BACKUP

Создает на локальном (клиентском) компьтере копию находящейся на удаленной машине базы данных, подключение к которой было ранее произведено через вызов ESDB_COMMAND_CONNECT_DATABASE. Используется методом LocalBackup класса TESDBDatabase. В результате обработки этого вызова сервер ESDB возвращает клиенту результат в виде 64-битного целого числа, представляющего собой размер файла, а при неудаче - ноль. Если возвращаемое значение не равно нулю, то вслед за ним на локальный компьютер передается по сети вся база данных, которая методом LocalBackup класса TESDBDatabase сохраняется в локальный файл, имя которого примается методом LocalBackup в своем единственном параметре. Следует отметить, что применение этого метода может вызвать большую нагрузку на сеть и может выполняться долго. Монопольность подключения к базе данных для выполнения этой операции не требуется. База данных сохраняется в том состоянии, которое она имела на момент поступления данного вызова. Транзакции, поступившие после этого момента в создаваемую копию не записываются.

ESDB_COMMAND_DATABASE_REMOTE_BACKUP

Создает на удаленном компьтере копию находящейся на нем же базы данных, подключение к которой было ранее произведено через вызов ESDB_COMMAND_CONNECT_DATABASE. Используется методом RemoteBackup класса TESDBDatabase. Имеет единственный параметр - полное имя файла, в который на удаленной машине следует записать копию базы данных. В результате обработки этого вызова сервер ESDB возвращает клиенту результат в виде 32-битного целого числа: при успешном выполнении это будет ESDB_RESULT_OK, при неудаче - код ошибки. Следует отметить, что применение этого метода не вызывает большой нагрузки на сеть и выполняется быстро. Монопольность подключения к базе данных для выполнения этой операции не требуется. База данных сохраняется в том состоянии, которое она имела на момент поступления данного вызова. Транзакции, поступившие после этого момента в создаваемую копию не записываются.

ESDB_QUERY_TABLE_TOTAL_RECORDS_COUNT

Запрашивает общее количество записей (включая удаленные) в таблице, ранее открытой через ESDB_COMMAND_OPEN_TABLE. Используется методом GetTotalRecordsCount класса TESDBDatabase. Имеет единственный параметр - положительный указатель на таблицу, ранее полученный от ESDB_COMMAND_OPEN_TABLE. В результате обработки этого вызова сервер ESDB возвращает клиенту результат в виде 32-битного целого числа: при успешном выполнении это будет количество записей в данной таблице, при неудаче - код ошибки.

ESDB_QUERY_TABLE_REAL_RECORDS_COUNT

Запрашивает реальное количество записей (не включая удаленные) в таблице, ранее открытой через ESDB_COMMAND_OPEN_TABLE. Используется методом GetRealRecordsCount класса TESDBDatabase. Имеет единственный параметр - положительный указатель на таблицу, ранее полученный от ESDB_COMMAND_OPEN_TABLE. В результате обработки этого вызова сервер ESDB возвращает клиенту результат в виде 32-битного целого числа: при успешном выполнении это будет количество записей в данной таблице, при неудаче - код ошибки.