M Y D E L P H I 7 . R U Самоучитель программирования  
 
  • Главная
  •  

     

    Компонент TIBSQL

    Компонент TIBSQL предназначен для быстрого выполнения запросов SQL, поэтому не обеспечивает связи с компонентами представления данных (свойства и методы описаны в табл. 18.6).

    Для обеспечения скорости выполнения запроса из компонента удалены все дополнительные механизмы, обслуживающие набор данных. Фактически компонент TIBSQL не имеет отношения к обычным компонентам доступа к данным, его непосредственным предком является класс icomponent, а не TDataSet. Поэтому он только передает через компонент соединения TiBDatabase запрос серверу и получает назад результат выполнения запроса.

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

    Возвращаемые набором данных текущие значения полей содержатся не в привычном наборе объектов полей TField, а в объекте TIBXSQLDA (см. выше). Так как структура XSQLDA создается сервером при выполнении запроса, существенно уменьшается время открытия набора данных компонента.

    Таблица 18.6. Свойства и методы компонента TIBSQL

    Объявление

    Тип

    Описание

    Свойства

    property Bof: Boolean;

    Pu

    Значение True говорит о том, что курсор находится в начале набора данных

    property Database: TiBDatabase;

    Pb

    Определяет компонент соединения с базой данных

    property DBHandle: PISC DB_HANDLE;

    Pu

    Указатель API на объект базы данных

    property Eof : Boolean;

    Pu

    Значение True говорит о том, что курсор находится в конце набора данных

    property Fieldlndex: [FieldName: String]: Integer;

    Pu

    Список порядковых номеров полей по их именам

    property Fields [const Idx: Integer] : TIBXSQLVAR;

    Pu

    Индексированный список структур XSQLVAR, хранящих значения полей набора данных

    property GenerateParamNames : Boolean;

    Pu

    Установка свойства в значение True приводит к созданию списка имен параметров запроса в свойстве Params

    property GoToFirstRecordOnExecute : Boolean;

    Pb

    Значение True обеспечивает установку курсора на первую запись набора данных при его открытии

    property Handle: TISC STMT HANDLE;

    Pu

    Содержит указатель API на запрос

    property Open: Boolean;

    Pu

    Позволяет определить, открыт ли набор данных

    property ParamCheck: Boolean;

    Pb

    Позволяет определить, был ли заново сгенерирован список параметров запроса при изменении его текста во время выполнения

    property Params: TIBXSQLDA;

    PU

    Область дескрипторов запроса (см. выше)

    property Plan: String;

    Pu

    Содержит план запроса после его  подготовки

    property Prepared: Boolean;

    Pu

    Значение True сообщает о том, что запрос готов к выполнению

    property RecordCount: Integer;

    Pu

    Возвращает число записей набора данных

    property RowsAf fected: Integer;

    Pu

    Возвращает число записей, обработанных запросом

    property SQL: TStrings;

    Pb

    Содержит текст запроса

    property SQLType: TIBSQLTypes read FSQLType;

    Pu

    Возвращает тип запроса (см. табл. 24.5)

    property Transaction: TIBTransaction;

    Pb

    Указывает на компонент транзакции

    property TRHandle: PISC_TR_HANDLE;

    Pu

    Содержит указатель API на транзакцию, в которой работает запрос

    property UniqueRelationName : String;

    Pu

    Возвращает уникальное внутреннее имя запроса

    Методы

    procedure Batchlnput ( InputOb ect: TIBBatchlnput);

    Pu

    Выполняет запрос с параметрами для переноса в объект Inputobject

    procedure BatchOutput (Output Object : TIBBatchOutput) ;

    Pu

    Выполняет запрос с параметрами для переноса в объект OutputObject

    function Call (ErrCode: ISC_STATUS; RaiseError: Boolean): ISC STATUS;

    Pu

    Возвращает текст сообщения об ошибке по ее коду ErrCode

    procedure CheckClosed;

    Pu

    Вызывает исключение, если набор данных открыт

    procedure CheckOpen;

    Pu

    Вызывает исключение, если набор данных закрыт

    procedure CheckValidStatement;

    Pu

    Вызывает исключение, если запрос некорректен

    procedure Close;

    Pu

    Закрывает набор данных

    function Current: TIBXSQLDA;

    Pu

    Ссылка на область дескрипторов запроса

    procedure ExecQuery;

    Pu

    Выполняет запрос

    function FieldByName [FieldName: String]: TIBXSQLVAR;

    Pu

    Возвращает структуру XSQLVAR по имени поля

    procedure FreeHandle;

    Pu

    Освобождает ресурсы, занятые запросом

    function Next: TIBXSQLDA;

    Pu

    Возвращает область дескрипторов для следующей записи

    procedure Prepare;

    Pu

    Готовит запрос к выполнению

    Методы-обработчики событий

    property OnSQLChanging: TNotifyEvent;

    Pb

    Вызывается при изменении запроса

    Текст запроса задается обычным для всех компонентов запросов свойством SQL. Для выполнения запроса используется также знакомое свойство EXGCSQL. После этого можно обращаться к созданному компонентом набору данных. Значения полей из текущей записи доступны через свойство Fields. Обратите внимание, что это не объекты типа TFields, а структуры XSQLVAR из области дескрипторов.

    Будут ли переданы значения полей в компонент, зависит от значения свойства GoToFirstRecordOnExecute.

    Доступ к области дескрипторов осуществляется через свойство Current.

    Переход к следующей записи выполняется методом Next. При этом обновляется область дескрипторов запроса.