Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диплом_Ювелирная мастерская.doc
Скачиваний:
129
Добавлен:
06.12.2018
Размер:
3.17 Mб
Скачать
      1. Алгоритмы обработки данных

Дпя обрабоки данных, хранящихся в таблицах 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 Камень.Камень, Камень.Форма, Камень.Цвет, Камень.Размер;