Для компонента cdsCusts также предусмотрена простейшая обработка исключительных ситуаций, возникающих на сервере.

Обратите также внимание на настройку компонента cnMast типа TSQLConnection. Свойства KeepConnection И LoginPrompt со значениями False обеспечивают открытие наборов данных при создании формы и автоматическое закрытие соединения при закрытии приложения с минимальным исходным кодом.

Интерфейсы dbExpress

Технология dbExpress основана на использовании четырех базовых интерфейсов, методы которых применяются во всех компонентах dbExpress. При серьезной работе с технологией или при проектировании собственных компонентов информация об этих интерфейсах будет полезна.

Интерфейс/SQLDnVer

Интерфейс ISQLDriver инкапсулирует всего три метода для обслуживания драйвера dbExpress. Экземпляр интерфейса создается для соединения и обеспечивает его связь с драйвером.

Методы

function SetOption(eDOption: TSQLDriverOption;
EropValue: Longlnt): SQLResult;
stdcall;
function GetOption (eDOption: TS21iDriverCption;
EropValue: Pointer;
MaxLength: Smalllnt;
out Length: Smalllnt): SQLResult;
stdcall;

позволяют работать с параметрами драйвера. А метод

function getSQLConnection(out pConn: LSQLConnection) : SQLResult;
stdcall;

возвращает указатель на интерфейс связанного с драйвером соединения

LSQLConnection.

Получить доступ к интерфейсу ISQLDriver разработчик может, использовав защищенное свойство

property Driver: ISQLDriver read FSQLDriver;

компонента TSQLConnection.

Интерфейс ISQLConnection

Интерфейс ISQLConnection обеспечивает работу соединения. Он передает запросы серверу и возвращает результаты, создавая экземпляры интерфейса ISQLCommand; управляет транзакциями; поддерживает передачу метаданных При ШУОЩ интерфейса iSQLMetaData.

Для открытия соединения используется метод

unction connect (ServerName: Khar;
UserName: PChar;
Password: PChar) : SQLResult;
stdcall;

где ServerName - ИМЯ базы данных, UserName И Password - ИМЯ И пароль пользователя.

Закрывает соединение метод

function disconnect: SQLResult; stdcall; Параметры соединения управляются методами

function SetOption(eConnectOption: TSQLConnectionCption;
lvalue: Longlnt): SQLResult;
stdcall;
function GetOption (eDOption: TSQLConnectionCption;
PropValue: Pointer;
MaxLength: Smalllnt;
out Length: Smalllnt): SQLResult;
stdcall;

Для обработки запроса, проходящего через соединение, создается интерфейс ISQLCommand

function getSQLComrand(out pComm: ISQLComrand) : SQLResult;
stdcall;

Обработка транзакций осуществляется тремя методами:

function beginTransaction(TranID: LongWord) : SQLResult;
stdcall;
function commit (TranID: LongWord): SQLResult;
stdcall;
function rollback(TranID: LongWord): SQLResult;
stdcall;

При помощи метода

function getErrorMessage(Error: PChar): SQLResult;
overload;
stdcall;

организована обработка исключительных ситуаций в компоненте TSQLConnection. В нем реализована защищенная процедура sQLError, которую можно использовать в собственных компонентах и при необходимости дорабатывать.

Например, можно написать собственную процедуру контроля ошибок примерно по такому образцу:


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Июнь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс