Метод

procedure Deletelndex(const Name: string); уничтожает индекс.

Кроме этого, табличные компоненты содержат свойства и методы, описываемые в гл. 14.

Компонент запроса

Компонент запроса предназначен для создания запроса SQL, подготовки его параметров, передачи запроса на сервер БД и представления результата запроса в наборе данных. При этом набор данных может быть редактируемым или нет.

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

SELECT * ERCM Country редактировать можно. Если же приведенное правило не выполняется, то набор данных можно использовать только для просмотра, и, конечно, возможности компонентов здесь ни при чем. Куда, к примеру, записывать результаты редактирования записей следующего запроса:

SELECT CustNo, SUM (AmountPaid)

FRCM Orders GROUP BY CustNo

10 Зак. 559

Ведь в таком запросе каждая запись есть результат суммирования неизвестного заранее числа других записей.

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

В целом компонент запроса работает быстрее, т. к. структура возвращаемых запросом полей может изменяться, то экземпляры класса TFieldDef, хранящие информацию о свойствах полей, создаются по необходимости при запуске приложения. Табличный компонент создает все классы для описания полей в любом случае, поэтому в приложениях клиент-сервер табличный компонент может открываться медленнее, чем запрос.

Рассмотрим общие свойства и методы компонентов запросов.

Текст запроса определяется свойством

property SQL: TStrings;

В свойстве

property Text: PChar;

содержится окончательно подготовленный текст запроса перед пересылкой его на сервер.

Выполнение запроса возможно тремя способами.

Если запрос возвращает результат в набор данных, то применяется метод procedure Open;

или свойство

property Active: Boolean;

которому присваивается значение True. После выполнения запроса открывается набор данных компонента. Закрывается такой запрос методом

procedure Close;

или тем же свойством Active.

Если запрос не возвращает результат в набор данных (например, использует операторы INSERT, DELETE, UPDATE), то используется метод

procedure ExecSQL;

и после выполнения запроса набор данных компонента не открывается. Попытка использовать для такого запроса метод Open или свойство Active приведет к ошибке создания указателя на курсор данных.

После выполнения запроса в свойстве

property RowsAffected: Integer;

возвращается число обработанных при выполнении запроса записей.

Для того чтобы разрешить редактирование набора данных запроса, необходимо свойству

property RequestLive: Boolean;

присвоить значение True. Это свойство устанавливается, но не работает для запроса, результат которого не модифицируется из-за самого запроса.

Для подготовки запроса к выполнению предназначен метод

procedure Prepare;

который обеспечивает выделение необходимых ресурсов на сервере и проведение оптимизации.


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Декабрь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31