Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекції для 3ОТ1.doc
Скачиваний:
10
Добавлен:
21.02.2016
Размер:
16.31 Mб
Скачать

Контрольні питання

  1. Надайте характеристику компоненту звіт

  2. Охарактеризуйте сторінки QReport

САМОСТІЙНА РОБОТА СТУДЕНТА

Змістовий модуль 6: програмування з графами

Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи

Самостійне заняття №43 – Компонент Query

План заняття

  1. Характеристика методів компонентів Query

  2. Порівняльна характеристика компонентів Query та Table

В качестве набора данных, который обеспечивает возможность создания и применения SQL-запросов, на данном занятии будет рассматриваться только компонент Quer.

Скорость доступа к локальным БД у компонента Query меньше, чем у компонента Table. Однако, вместе с тем компонент Query предоставляет ряд существенных удобств при операциях с таблицами БД, таких, как отбор данных по сложным критериям сортировка, группировка записей, одновременное отражение данных из нескольких таблиц и т.д.

В общем случае пользователь не имеет возможности вручную изменять информацию, передаваемую компонентом Query. Для осуществ­ления изменений хранящейся в БД информации формируется специальные запросы, причем произведенные изменения тут будут автоматически отображаться, а необходимо повторно осуще­ствить выборку данных. Только при выполнении ряда ограничений возможно создание так называемых "живых" запросов, которые позволят производить изменения вручную и затем ав­томатически их отображать. Однако, вообще говоря, такие "жи­вые" запросы применяются довольно редко.

На первый взгляд может показаться, что компонент Query об­ладает существенными недостатками. Однако в действительности они не столь значительны и с легкостью компенсируются теми дополнительными возможностями и удобствами, которые предо­ставляют SQL-запросы.

Многие свойства компонента Query аналогичны одноименным свойствам компонента Table, поэтому они не будут рассматри­ваться повторно. Здесь имеет смысл упомянуть только о некото­рых специфических свойствах компонента Query.

Свойство Active (тип Boolean) определяет активность ком­понента Query. Если свойство имеет значение True, то данный компонент содержит набор данных, основанный на выполнении SQL-запроса, определяемого свойством SQL. Если же свойство Active равно False, то набор данных пуст.

Свойство Constrained (тип Boolean), установленное в True, указывает на то, что в изменяемом наборе данных на записи, вводимые или изменяемые пользователем, накладываются ограни­чения секции WHERE оператора SELECT.

Свойство DataSource (тип TDataSource) содержит ссылку на источник данных DataSource, используемый для формиро­вания параметрического запроса.

Свойство Local (тип Boolean) имеет значение True, если компонент Query работает с локальной или файл-серверной БД.

Свойство ParamCheck (тип Boolean) обеспечивает автома­тическое обновление списка параметров при изменении запроса на этапе выполнения программы, если имеет значение True.

Свойство Params [Index: Word] (тип TParams) содержит список параметров, передаваемых в SQL-запрос. Данное свойство имеет смысл только при создании параметрических запросов.

Свойство Prepared (тип Boolean) имеет значение True, если запрос подготовлен к выполнению посредством вызова ме­тода Prepare.

Свойство RequestLive (тип Boolean) позволяет изменять за­писи набора данных и обеспечивает автоматическое отображение этих изменений, если установлено в True. По умолчанию данному свойству присвоено значение False, то есть набор данных Query запрещено модифицировать. Для этого набора данных имеется воз­можность модификации, которая определяется содержанием SQL-запроса. В случае, когда с помощью запроса набор данных формиру­ется на основе нескольких таблиц, его нельзя модифицировать вне зависимости от значения свойства RequestLive.

Свойство RowsAffected (тип Integer) содержит количе­ство записей, которые были изменены или удалены в результате выполнения запроса.

Свойство SQL (тип TStrings) содержит текст SQL-запроса. Текст статического SQL-запроса можно вводить и изменять при помощи специального редактора, который вызывается при выборе данного свойства в окне Инспектора объектов. Общий вид ука­занного редактора показан на рис. 15.1.

Свойство State (тип TDataSetState) аналогично одно­именному свойству компонента Table и определяет состояние, в котором находится набор данных Query. Данный компонент мо­жет находиться в одном из состояний, описанных для компонента Table, кроме одного исключения. Набор данных Query не перехо­дит в режим dsSetKey, так как отбор записей производится средствами языка SQL.

Свойство Text (тип PChar) содержит текст SQL-запроса, ко­торый был в действительности передан BDE. Исходный текст за­проса может быть изменен программным образом, поэтому содержимое данного свойства может отличаться от содержимого свойстваSQL компонента Query.

Свойство UniDirectional (тип Boolean), установленное в True, приводит к тому, что указатель текущей записи набора данных, может перемещаться только вперед. Такие наборы данных обрабатываются быстрее и занимают меньше памяти.

Рассмотрим наиболее важные методы компонента Query.

Метод Open позволяет открыть набор данных. Этот метод ис­пользуется для выполнения SQL-запроса, построенного на основе оператора SELECT и осуществляющего выборку записей из набо­ра данных. Кроме выполнения запроса, метод Open дает возмож­ность просмотреть содержимое набора данных, полученного в результате.

Метод ExecSQL применяется только для выполнения SQL-запроса. Этот метод не открывает набор данных и используется при работе с запросами, осуществляющими создание и удаление таблиц и индексов, изменение структуры таблиц, а также добавление, уда­ление и редактирование записей таблиц БД.

Метод Close закрывает набор данных. Этот метод необходи­мо вызывать перед любым изменением набора данных, а также перед динамическим изменением текста SQL-запроса.

Структурированный язык запросов (SQL) предназначен ис­ключительно для работы с таблицами БД. Данный язык не имеет средств, позволяющих реализовать циклы, ветвления, переходы, ввод/вывод и т.п. Поэтому язык SQL сам по себе обычно не ис­пользуется, а включается в состав других средств.

Полное и подробное описание языка SQL могло бы занять, ве­роятно, несколько увесистых томов, однако даже краткое описа­ние наиболее важных операторов и функций данного языка помо­жет читателю научиться создавать запросы достаточно высокого уровня. Особое внимание при дальнейшем изложении будет уде­лено оператору SELECT, с помощью которого осуществляется выбор данных из таблиц БД.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]