Читайте также:
|
|
Дпя обрабоки данных, хранящихся в таблицах Access, используются запросы, написанные на языке SQL
SQL – это легкий для понимания язык и в то же время универсальное программное средство управления данными. Успех языку SQL принесли следующие его особенности:
· независимость от конкретных СУБД;
· переносимость с одной вычислительной системы на другую;
· наличие стандартов;
· поддержка со стороны компании Microsoft (протокол ODBC);
· реляционная основа;
· высокоуровневая структура;
· возможность выполнения специальных интерактивных запросов;
· обеспечение программного доступа к базам данных;
· возможность различного представления данных;
· полноценность как языка, предназначенного для работы с базами данных;
· возможность динамического определения данных;
· поддержка архитектуры клиент/сервер.[12]
Все перечисленные выше факторы явились причиной того, что SQL стал стандартным инструментом для управления данными на персональных компьютерах, мини-компьютерах и больших ЭВМ.
Перечислим основные запросы, использованные в данной программе.
Для определения прихода и расхода металлов используеися запрос ADOQueryOSTATOK:
SELECT
(SUM(ПокупкаМеталл.Вес*ПокупкаМеталл.Колличество)-SUM(ЗаказМеталлМастерской.Вес))
FROM
Металл, ПокупкаМеталл, ЗаказМеталлМастерской
WHERE
ПокупкаМеталл.Металл=Металл.Металл AND
ПокупкаМеталл.Проба= Металл.Проба AND
ЗаказМеталлМастерской.Проба= Металл.Проба AND
ЗаказМеталлМастерской.Металл=Металл.Металл AND
Металл.Металл Like M AND
Металл.Проба Like P
GROUP BY Металл.Металл, Металл.Проба, Металл.Цена
Запрос ADOQuerySumKvit используется для определения суммы квитанции при покупке металлов у населения:
SELECT
SUM(Колличество*Вес*ЦенаЗаГрамм)
FROM
ПокупкаМеталл
WHERE
КодКвитанции=:KODITOG
Запрос ADOQueryPostavkaKam используется для определения суммы поставки драгоценных камней:
SELECT
Поставка.НомерПоставки, Поставщик, ДатаПоставки, SUM(Количество*Цена)
FROM
Поставка, ПоставкаКамни
WHERE
Поставщик=:POST AND
Поставка.НомерПоставки=ПоставкаКамни.НомерПоставки
GROUP BY Поставка.НомерПоставки, Поставщик, ДатаПоставки
Запрос ADOQuerySUMzakaz разработан для определения суммы заказа:
SELECT
SUM(ЗаказИзделие.ЦенаИзделия)
FROM
Заказ, ЗаказИзделие
WHERE
Заказ.НомерЗаказа=ЗаказИзделие.НомерЗаказа AND
Заказ.НомерЗаказа Like Z
GROUP BY
Заказ.НомерЗаказа
Запрос ADOQueryVesMetMASTER разработан для определения веса металлов, добавленных мастерской для изготовления изделия, с пересчетом на лигатуру:
SELECT
SUM((ЗаказМеталлМастерской.Вес/Модель.Проба)*ЗаказМеталлМастерской.Проба)
FROM
ЗаказМеталлМастерской, ЗаказИзделие, Модель
WHERE
ЗаказМеталлМастерской.НомерЗаказа=ЗаказИзделие.НомерЗаказа AND
ЗаказМеталлМастерской.АртикулМодели=ЗаказИзделие.АртикулМодели AND
ЗаказМеталлМастерской.РазмерДлина=ЗаказИзделие.РазмерДлина AND
ЗаказИзделие.АртикулМодели=Модель.АртикулМодели AND
ЗаказМеталлМастерской.НомерЗаказа Like N AND
ЗаказМеталлМастерской.АртикулМодели Like ART AND
ЗаказМеталлМастерской.РазмерДлина Like R
GROUP BY ЗаказИзделие.НомерЗаказа, ЗаказИзделие.АртикулМодели, ЗаказИзделие.РазмерДлина
Аналогичным образом производится расчет суммы металлов, сданных клиентом для изготовления изделия, с пересчетом на лигатуру:
SELECT
SUM((ЗаказМеталлКлиента.Вес/Модель.Проба)*ЗаказМеталлКлиента.Проба)
FROM
ЗаказМеталлКлиента, ЗаказИзделие, Модель
WHERE
ЗаказМеталлКлиента.НомерЗаказа=ЗаказИзделие.НомерЗаказа AND
ЗаказМеталлКлиента.АрттикулМодели=ЗаказИзделие.АртикулМодели AND
ЗаказМеталлКлиента.РазмерДлина=ЗаказИзделие.РазмерДлина AND
ЗаказИзделие.АртикулМодели=Модель.АртикулМодели AND
ЗаказМеталлКлиента.НомерЗаказа Like N AND
ЗаказМеталлКлиента.АрттикулМодели Like ART AND
ЗаказМеталлКлиента.РазмерДлина Like R
GROUP BY ЗаказИзделие.НомерЗаказа, ЗаказИзделие.АртикулМодели, ЗаказИзделие.РазмерДлина
Для определения расхода драгоценных камней, используется запрос ADOQueryKamRashod:
SELECT Камень.Камень, Камень.Форма, Камень.Цвет, Камень.Размер,
Sum(ЗаказИзделие.Количество*МодельКамни.Количество)
FROM Камень INNER JOIN
((Модель INNER JOIN
(Заказ INNER JOIN
ЗаказИзделие ON
Заказ.НомерЗаказа = ЗаказИзделие.НомерЗаказа) ON
Модель.АртикулМодели = ЗаказИзделие.АртикулМодели) INNER JOIN
МодельКамни ON
Модель.АртикулМодели = МодельКамни.АртикулМодели)
ON (Камень.Размер = МодельКамни.Размер) AND (Камень.Цвет = МодельКамни.Цвет) AND
(Камень.Форма = МодельКамни.Форма) AND (Камень.Камень = МодельКамни.Камень)
WHERE (((Заказ.Анулировать)=No) AND ((Заказ.Выдан)=Yes)) AND
Камень.Камень Like KAM AND
Камень.Форма Like FORMA AND
Камень.Цвет Like CVET AND
Камень.Размер Like RAZ
GROUP BY Камень.Камень, Камень.Форма, Камень.Цвет, Камень.Размер;
Дата добавления: 2015-09-04; просмотров: 77 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Описание программных модулей и структурная схема пакета | | | Контрольный пример реализации проекта и его описание |