Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 7.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.04 Mб
Скачать

1.5. Особенности набора данных Query

Компонент Query представляет собой набор данных, записи которого формиру­ются в результате выполнения SQL-запроса и основаны на реляционном спосо­бе доступа к данным. При работе с удаленными БД рекомендуется использовать именно набор данных Query.

Замечание

При работе с удаленными БД следует обращаться к средствам языка SQL. Это относится и к таким операциям, как перемещение по набору данных или встав­ка в него записей. Если же для компонента Query используются методы типа Next или insert, то вместо реляционного способа доступа к удаленным дан­ным будет применен навигационный. В результате набор данных Query будет мало чем отличаться от набора данных Table.

В отличие от компонента Table, набор данных Query может включать в себя записи более чем одной таблицы БД.

Текст запроса, на основании которого в набор данных отбираются записи, со­держится в свойстве sql типа TStrings. Запрос включает в себя команды на языке SQL и выполняется при открытии набора данных. Запрос SQL иногда называют SQL-программой.

При формировании запроса на этапе разработки приложения можно использо­вать текстовый редактор (рис. 7.3), вызываемый через Инспектор объектов двойным щелчком в области значения свойства SQL.

Рис. 7.3. Редактирова­ние запроса SQL

SQL-запрос также можно формировать и изменять динамически, внося измене­ния в его текст (значение свойства sql компонента Query) непосредственно при выполнении приложения.

Замечание

В процессе формирования SQL-запроса проверка его правильности не произ­водится, и если в запросе имеются ошибки, то они выявляются только при от­крытии набора данных. Одним из вариантов предотвращения ошибок в SQL-запросе является его предварительная отладка, например, с помощью про­граммы Database Desktop.

Рассмотрим пример приложения — простейшего редактора, позволяющего подготавливать и выполнять SQL-запросы. На рис. 7.4 показана форма прило­жения при его выполнении. Кроме визуальных компонентов, форма содержит два компонента доступа к данным Queryl и DataSourcel, которые при выполне­нии приложения не видны.

Рис. 7.4. Приложение-редактор SQL-запросов

Редактирование SQL-запроса осуществляется с помощью компонента Memoi. На­бранный запрос выполняется при нажатии кнопки Buttonl с заголовком Вы­полнить, а результат выполнения отображается в компоненте DBGrid1.

При наличии в тексте SQL-запроса ошибки генерируется исключительная си­туация и выдается сообщение об ошибке (рис. 7.5), а результат запроса оказы­вается не определен. При этом набор данных Queryl автоматически закрывается.

Значения свойств DataSet источников данных DataSourcel И DataSource компо­нента DBGridi, с помощью которых организуется взаимодействие компонентов Queryl, DataSourcel и DBGridi, устанавливаются при создании формы. В после­дующих примерах приложений значения этих свойств задаются через Инспек­тор объектов, поэтому операторы, присваивающие свойствам необходимые зна­чения, в модуле формы отсутствуют.

Рис. 7.5. Сообщение об ошибке в тексте SQL-запроса

Приведем код модуля uSQLEdit формы Forml приложения:

unit uSQLEdit;