Компонент Query

Модификация данных

Алгоритм установки связи

  1. Индексация по полям связи: в Database Desktop в окне Table Properties/Secondary Indexes/Define и сохранить (у child).
  2. Установление ссылочной целостности: в Database Desktop в окне Table Properties/Referential Integrity/Define выбрать главную таблицу и внешний ключ подчиненной (child) и связь сохранить.
  3. Организация связи Master – Detail (3 способа рассмотрены в Пособии) программно:

Table1.DatabaseName := 'proba';//выбор псевдонима

Table1.TableName := 'tovar.db';//связь компонента доступа с таблицей

DataSource1.DataSet := Table1;//связь ком-та доступа с к-том связи

DBGrid1.DataSource := DataSource1;//к-та связи с к-том отображения

Table1.Open;//открытие набора данных

Table2.DatabaseName := 'proba';

Table2.TableName := 'prixod.db';

DataSource2.DataSet := Table2;

DBGrid2.DataSource := DataSource2;

Table2.MasterSource := DataSource1;//связывание с источником

Table2.Indexname := 'in_tov_prih';//по индексному ключу

Table2.MasterFields := 'Tovar';//данного поля

Table2.Open;

 

Модификация данных непосредственно в таблицах нежелательна, т.к. это может привести к непредсказуемым событиям.

Модификация данных проводится только через отдельные формы данных с верификацией вводимых данных:

• введения ограничений на диапазон данных,

• проверка типа вводимых данных,

• обработка исключительных ситуаций Try…Except, Try…Finaly.

 

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

Name - имя компонента, используется компонентом DataSource для связи результата выполнения запроса с компонентом, обеспечивающим просмотр записей, например, DBGrid.

SQL - записанный на языке SQL запрос к БД,

Active - при значении True активизирует выполнение запроса.

Компонент Query: TDataSetочень похож на компонент Table.

Он также представляет данные в виде таблицы, колонки которой описываются компонентами TField.

Однако таблица компонента Query- логическая, формируется в результате SQL- запроса и может быть объединением нескольких физических таблиц.

Отличается от компонента Table:

• нет идентификации таблицы свойства TableName (делается через SQL-запрос),

• не содержит методов управления файлами, т.к. SQL-запрос обращается к таблицам сам,

• нет смысла индексировать (делается в SQL-запросе),

• нет механизма связи Master – Detail (делается в SQL-запросе).

SQL-запрос можно отладить в :

• В программе SQL Explorer на вкладке Enter SQL,

• В программе Database Desktop составить QBE-запрос и текст запроса посмотреть в окне SQL Editor, выполнив команду Query/Show SQL,

• В построителе запросов SQL Builder, вызываемом из контекстного меню компонента Query.

Инициализация запроса:

• В свойстве SQL компонента Query записать текст запроса и присвоить свойствуActive = True.

При выполнении программы в таблице будет информация, соответствующая SQL-запросу.

• Но лучше это осуществлять программно, используя метод Open для компонента Query при создании формы.

Виды SQL – запросов:

Статический – запрос включается в исходный код программы на этапе разработки и в процессе выполнения приложения не меняется.

Динамический – формируется или изменяется при выполнении приложения.

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