Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РиЭ УБД(4к1с).docx
Скачиваний:
0
Добавлен:
25.04.2019
Размер:
57.01 Кб
Скачать

Создание связанного списка в dbGrid

При необходимости можно создать раскрывающийся список в DBGrid, который будет отображать сведения из родительской таблицы по отношению к таблице, отображаемой в DBGrid (аналогично dblookupcombobox). Для этого используются lookup поля. Такое поле хранит в себе текстовое значение из родительской таблицы, а в дочернюю таблицу передается значение ключевого поля родительской таблицы.

Для создания lookup поля создаем новое поле в дочерней таблице. Переходим в DateBD. В модуле DateBD выделить компонент ADOSirye_3 и в редакторе добавить новое поле.

Name - vidsirye

Component – adosirye_3surie

Type - stringLookup – галочка

Key field – id_vid

Adosiryevid_3

Id_vid_sur

Name

И переименовываем в displaylabel – вид сырья

SQL-запросы

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

Основные свойства ADOQuery:

  • Active

  • Params – другой параметр

  • SQL – текст простейшего запроса

  • RequestLive – создание «живого» запроса

Основные методы ADOQuery:

  • Open – открытие

  • Close - закрытие

  • Refresh – обновление данных

  • ExecSQL

В общем виде запрос на выборку из таблиц данных выглядит так:

Select список полей

From таблица (таблицы)

Where (критерий)

Order by список полей

Пример: Создать форму, содержащую таблицу DBGrid, которая содержит сведения о поставщиках, его поставках сырья. Поиск производится по введенной фамилии.

  1. Создать форму

Unit OtborPostavki

Formstyle

Caption

Name

Onclose

Position

Project – option

  1. Добавляем в главное меню

Правее журналов – Поиск

да

  1. Для организации запроса в модуль DateBD добавить компонент ADOQuery, для общей видимости запроса.

Установить свойства:

Name - ADOQueryPostavka

Connection – kombinat

Data source – adopostavchik

Sql - … - select*from postavchik – ok

Active – true

DataSource:

Name – adoquerypostavka

Dataset – adoquerypostavka

  1. Интерфейс

DBGrid1

Datasource – ADOQueryPostavka

Edit1

Buttom «Поиск по фамилии» «Сброс» «Закрыть»

  1. Для правильной организации SQL-запроса необходимо ориентироваться на схему Базы Данных.

  2. Обработка кнопки «Поиск по фамилии»:

DateBD.ADOQueryPostavka.Active:=false;

DateBD.ADOQueryPostavka.SQL.Clear;

DateBD.ADOQueryPostavka.SQL.Add (‘select postavchik.fam, postavchik.name, surie.name, postavka.data_post, postavka.kolvo’);

dateBD.ADOQueryPostavka.SQL.Add (‘from postavchik, sirye, postavka’);

DateBD.ADOQueryPostavka.SQL.Add (‘where postavchik.id_post=postavka.id_post and postavka.id_sur=sirye.id_sur and postavchik.fam like ‘’’+edit1.text+’’’’);

dateBD.ADOQueryPostavka.Active:=true;

  1. Кнопка сброса:

Копируем кнопку поиска и удаляем в скобках все, кроме первого слова, и строчку where удалить from postavchik

DateBD.ADOQueryPostavka.Active:=false;

DateBD.ADOQueryPostavka.SQL.Clear;

DateBD.ADOQueryPostavka.SQL.Add (‘select’);

dateBD.ADOQueryPostavka.SQL.Add (‘from postavchik’);

dateBD.ADOQueryPostavka.Active:=true;