Невизуальный компонент набора данных, выполняющий запросы SQL Страница библиотеки Data Access Класс TQuery
Иерархия TObiect —- TPersistent — TComponent — TDataSet — TBDEData-Set — TDBDataSet
Модуль Dbtables
Компонент Query может во многих случаях включаться в приложения вместо Table. Преимущества
Query по сравнению с Table:
- Возможность формирования набора данных из полей нескольких таблиц базы данных
- Формирование запросов на языке SQL, что обеспечивает большую гибкость, чем в Table
- При работе в сети с удаленным сервером (Sybase, SQL Server, Oracle, Informix, DB2, InterBase)
Query более эффективен, поскольку Table создает
на компьютере пользователя временную копию базы данных сервера, что требует больших ресурсов и значительно
загружает сеть. Query размещает на компьютере пользователя только результат запроса.
Основное свойство компонента Query — SQL, имеющее тип TStrings. Это список строк, содержащих запросы
SQL. В процессе проектирования приложения обычно необходимо сформировать в этом свойстве некоторый
предварительный запрос SQL, который показал бы, с какой таблицей или таблицами будет проводиться работа.
Но далее во время выполнения приложения свойство SQL может формироваться программно методами, обычными
для класса TStrings: Clear — очистка, Add — добавление строки и т.д.
Для связи Query с необходимой базой данных служит свойство DatabaseName. В выпадающем списке этого
свойства в Инспекторе Объектов вы можете видеть все доступные BDE псевдонимы баз данных и выбрать
необходимый вам.
После того, как указана база данных, можно устанавливать значение свойства SQL, содержащее запрос.
Этот запрос обычно содержит оператор Select со списком всех полей таблиц и «необходим для настройки
компонента. В дальнейшем он может изменяться во время выполнения.
Соединение с выбранной таблицей базы данных осуществляется свойством Active. По умолчанию оно равно false.
Если установить его в true во время проектирования или программно во время выполнения, то компонент
соединится с базой данных.
Объекты полей, экспонируемых компонентом Query, могут создаваться автоматически.
Но тогда их характеристики (надписи, число отводимых под них символов и т.п.) будут приняты по
умолчанию и вряд ли устроят пользователя. Можно создавать и редактировать объекты полей с помощью
специального Редактора Полей. Вызвать его проще всего двойным щелчком на компоненте Query.
Имеется множество свойств, методов и событий как объектов полей — наследников TField.
так и базовых классов наборов данных, которым наследует Query: TDataSet, TBDEDataSet.
TDBDataSet.
Основные свойства
Свойство | Объявление / Описание | |
Active | property Active: Boolean;
Определяет, открыта база данных, или нет. |
|
Constrained | property Constrained: Boolean;
Указывает совместимость ограничений в предложении SELECT с операциями |
|
Database | property Database: TDatabase;
Указатель на связанный с базой данных компонент типа TDatabase. Обеспечивает доступ к его |
|
Database-Name | property DatabaseName: String;
Определяет имя базы данных, связанной с набором данных. |
|
Свойство | Объявление / Описание | |
DataSource | property DataSource: TDataSource;
Указывает компонент DataSource, относящийся к другой, головной таблице, из |
|
Local | property Local: Boolean;
Определяет, относится ли запрос к локальным таблицам Paradox и dBASE, или к |
|
ParamCheck | property ParamCheck: Boolean;
Определяет,должно ли свойство Params автоматически обновляться при изменении |
|
ParamCount | property ParamCount: Word;
Число параметров в свойстве Params. |
|
Params | property Params[Index: Word]: TParams;
Массив параметров запроса, содержащегося в SQL. |
|
Prepared | property Prepared: Boolean;
Определяет, подготовлен ли запрос к выполнению.Установка в true вызывает метод |
|
RequestLive | property RequestLive: Boolean;
Позволяет попытаться возвращать результат запроса как «живой» набор |
|
Rows-Affected | property RowsAffected: Integer;
Возвращает число обновленных или удаленных записей в результате |
|
SQL | property SQL: TStrings;
Основное свойство компонента, содержащее запрос SQL. |
|
SQLBinary | property SQLBinary: PChar;
Используется внутри класса для указания на двоичный, поток запроса |
|
StmtHandle | property StmtHandle: HDBIStmt;
Идентификатор прямого запроса к Borland Database Engine (BDE). |
|
Text | property Text: PChar;
Текст запроса SQL, передаваемый в Borland Database Engine (BDE). |
|
Uni-
Directional |
property UniDirectional: Boolean;
Определяет доступность двунаправленного курсора Borland Database Engine (BDE). |
|
Append | procedure Append;
Добавляет новую пустую запись в конец набора данных. |
|
AppendRecord | procedure AppendRecord(const Values: array of const);
Добавляет в набор данных новую запись, заполняет ее и пересылает в базу данных. |
|
ApplvUpdates | procedure ApplyUpdates;
Записывает каптированные изменения в базу данных. |
|
Append | procedure Append;
Добавляет новую пустую запись в конец набора данных. |
|
Cancel | procedure Cancel;
Отменяет результаты редактирования. |
|
CancelUpdates | procedure CancelUpdates;
Отменяет все каптированные изменения и восстанавливает исходное состояние набора данных. |
|
Close | procedure Close;
Закрывает набор данных. |
|
CloseDatabase | procedure CloseDatabase(Database: TDatabase);
Закрывает соединение с базой данных. |
|
CommitUpdates | procedure CommitUpdates;
Очищает буфер каптированных изменений. |
|
Delete | procedure Delete;
Удаляет активную запись и позиционирует курсор на следующую запись. |
|
Edit | procedure Edit;
Переводит набор данных в режим редактирования. — |
|
ExecSQL | procedure ExecSQL;
Выполняет запрос, не связанный с SELECT (запросы INSERT, UPDATE, DELETE, CREATE TABLE). |
|
FieldBvName | function FieldBvNamefconst FieldName: String): TField:
Находит поле по его имени FieldName. При неверном имени генерирует исключение. |
|
FindField | function FindFieldfconst FieldName: string): TField:
Находит поле по его имени. При неверном имени возвращает nil. |
|
FindFirst | function FindFirst: Boolean;
Перемещает курсор к первой записи и возвращает true в случае успеха. |
|
FindLast | function FindLast: Boolean;
Перемещает курсор к последней записи и возвращает true в случае успеха. |
|
FindNext | function FindNext: Boolean;
Перемещает курсор к следующей записи и возвращает true в случае успеха. |
|
FindPrior | function FindPrior: Boolean;
Перемещает курсор к предыдущей записи и возвращает true в случае успеха. |
|
First | procedure First;
Перемещает курсор к первой записи. |
|
GetFieldNames | procedure GetFieldNames(List: TStrings);
Выдает список имен всех полей набора данных. |
|
Insert | procedure Insert;
Вставляет новую пустую запись в набор данных. |
|
InsertRecord | procedure InsertRecord(const Values: array of const);
Вставляет новую заполненную запись в набор данных. |
|
Last | procedure Last;
Перемещает курсор к последней записи. |
|
Locate | type TLocateOption = (loCaselnsensitive, loPartialKey);
TLocateOptions = set of TLocateOption; function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean; Осуществляет поиск записи в наборе данных. |
|
Lookup | function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields: string): Variant; Осуществляет поиск записи в наборе данных и возвращает значения указанных полей этой записи. |
|
MoveBv | function MoveBy(Distance: Integer): Integer;
Перемещает курсор на заданное число записей. |
|
Next | procedure Next;
Перемещает курсор к следующей записи. |
|
Open | procedure Open;
Открывает соединение с базой данных и выполняет запрос SELECT, содержащийся в свойстве |
|
OpenDatabase | function OpenDatabase: TDatabase;
Открывает базу данных. |
|
ParaniByName | function ParamByName(const Value: String): TParam;
Возвращает объект параметра запроса с указанным именем. |
|
Post | procedure Post;
Пересылает отредактированную запись в базу данных. |
|
Prepare | procedure Prepare;
Подготавливает BDE и удаленный сервер к выполнению запроса. Подготовка ускоряет |
|
Prior | procedure Prior;
Перемещает курсор к предыдущей записи. |
|
RevertRecord | procedure RevertRecord;
Отменяет исправления текущей записи. |
Основные события
Событие | Описание |
OnUpdateError | Наступает при генерировании исключения в процессе пересылки в базу данных измененной записи. |
OnUpdateRecord | Наступает при пересылке кэшированной записи в базу данных. |