Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ADO Delphi.doc
Скачиваний:
22
Добавлен:
11.08.2019
Размер:
800.26 Кб
Скачать

Insert into Имя_таблицы (Список_полей

Values (Список_значений)

Каждому полю в списке полей должно соответствовать нужное значение в списке значений. Если заполняются все поля записи, список полей вместе с обрамляющими скобками можно опускать. Например:

INSERT INTO Izdelie

VALUES (6, ‘Балтика «Экспортное»’, ‘шт’, 35)

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

CREATE TABLE

NewTable(TNNom SMALLINT, TKod SMALLINT, TKol SMALLINT)

Тогда следующий оператор вставит в нее список изделий для накладной 28:

INSERT INTO NewTable

SELECT * FROM Snakl

WHERE SnNNom = 28

Для удаления записей используется оператор

DELETE FROM Имя_таблицы WHERE Условие_выборки_записей

Например:

DELETE FROM Zakazcik WHERE ZKod = 2

Если опустить секцию WHERE, из таблицы будут удалены все записи. Изменение отдельных полей таблицы реализуется оператором

UPDATE Имя_таблицы SET Имя_поля = 3начение

WHERE Условие_выборки

Например: UPDATE Izdelie SET ICena = 35 WHERE IKod = 1

За словом SET может стоять произвольное количество полей с указанием их значений. Два соседних присваивания Имя_поля=3начение разделяются запятой. Если опустить секцию WHERE, будут изменены значения всех записей таблицы.

Построение запроса в демонстрационной базе данных. Допустим, что пользователь хочет отобрать накладные, для которых сумма отгрузки превышает 10 000 рублей или которые выписаны не ранее 22 сентября 2003 г.:

SELECT NNom, NData, ZNaim, NSumma

FROM Naklad, Zakazcik

WHERE ZKod = NZKod

AND (NSumma>10000 OR NData > = #22.09.03#)

ORDER BY NNom

Модифицируем модуль данных, разместив на нем компоненты ADOQuery1 и DataSource1. В свойстве DataSet источника данных (назовем его DataQuery1) укажем значение ADOQuery1 (имя объекта-запроса), а в объекте ADOQuery1 свойство Connection должно получить значение АDOConnection1.

Запрос строится на основе таблиц Naklad и Zakazcik. Обратимся к свойству SQL компонента ADOQuery1, раскроем окно редактора текста и введем текст запроса. В окне Structure исчезнет красный знак вопроса.

Теперь остается отобразить набор нужных записей на экране. Для этого создадим новую рабочую форму командой File > New > FormDelphi for Win 32. Сохраним модуль этой формы под именем fmQuery1Unit и добавим его в проект Sale командой Project > Add to Project. Изменим некоторые свойства формы:

Caption = ‘Отобранные ТТН’ BorderStyle = bsDialog

Name = FQuery1 BorderWidth = 2

Height = 210 Width = 416

Разместим на форме компонент Panel1 (Align = alBottom, Caption = ‘ ‘). Расположим на панели компонент DBNavigator1 и кнопку BitBtn1 (Kind = bkClose). В свободной части формы разместим Pane12 (Align = alClient, Caption = ‘ ‘). На этой панели расположим компонент DBGrid1 (Align = alClient).

Командой File > Use Unit свяжем модуль fmQuery1Unit с модулем данных dmSaleUnit. Сохраним все сделанные изменения. Для компонента DBGrid1 раскроем список свойств DataSource и выберем DM –>DataQuery1. Для компонента DBNavigator1 в списке свойств DataSource также выберем DM –>DataQuery1.

Создадим объекты-столбцы для сетки DBGrid1 – дважды щелкнув мышью на сетке, вызовем редактор столбцов и в его контекстном меню выберем команду Add Fields. Добавим последовательно все поля. Далее редактируем свойства каждого столбца в отдельности. Вид выравнивания значений в столбце зададим, обратившись к свойству Alignment, параметры заголовка зададим в свойствt Caption.

Свяжем вызов этой формы с соответствующим пунктом контекстного меню главной формы. Щелкнем правой кнопкой мыши на компоненте PopupMenu1, расположенном на этой форме. Выберем пункт Menu Designer. Для первого элемента меню (объект N1) в свойстве Caption укажем – «Отобранные ТТН». Напишем процедуру обработки события OnClick для этого элемента меню:

procedure TFMain.N1Click(Sender: TObject);

begin

FQuery1.ShowModal;

end;

Командой File > Use Unit добавим модуль fmQuery1Unit в раздел implementation модуля fmMainUnit.

ВНИМАНИЕ! Значение свойства Active запроса Query1 во время работы приложения должно быть равным True.

Вид окна после всех сделанных изменений показан на рис. 14.

Рис. 14. Рабочее окно для запроса «ТТН, по которым поступили ПТР»

27

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