Невизуальный компонент набора данных, выполняющий запросы 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 | Наступает при пересылке кэшированной записи в базу данных. | 


 Октябрь 25th, 2013 
 admin 
 Опубликовано в рубрике