Методы Open и ExecSQL

Помимо установки свойства Active = true компонент TQuerу имеет 2-ва метода Open и ExecSQL для выполнения запроса во время выполнения программы.

Метод Open используется для активизации запроса, возвращающего НД, то есть для активизации запроса SELECT. Например, для запроса quNakls, расположенного в модуле DM, получим:

DM.quNakls.Open;

а для запроса quNakls, расположенного на главной форме fmNakls, получим:

quNakls.Open;

Метод ExecSQL используется для активизации запросов, не возвращающих данные, то есть для активизации запросов CREATE, INSERT, DELETE, UPDATE, DROP и т.п.

Следует подчеркнуть:

ü при любом изменении свойств компонента-запроса, в том числе при занесении в свойство SQL нового запроса, он автоматически переходит в неактивное состояние (его свойство Active получает значение False). Для выполнения введенного запроса компонент следует открыть заново, то есть выполнить метод Open или ExecSQL, либо установить Active = True.

ü синтаксис SQL-операторов проверяется только при их выполнении методом Open или ExecSQL или при установке свойства Active = true.

Примечание 1. Размещение компонент работы с БД в отдельном модуле данных является рациональным во многих отношениях. Однако компонент TQuery можно размещать на форме, к которой он относится. При этом в свойстве DatabaseName компонента-запроса необходимо указывать не локальный псевдоним БД в программе - BiblData, а псевдоним БД в BDE – BiblDataMdb.

Примечание 2. Последующие примеры выполнены из расчета использования СУБД Access. При использовании другой СУБД возможны некоторые отличия. Так для СУБД PostgreSQL требуется имена таблиц и полей заключать в двойные кавычки.