База данных ‘Магазин по продаже автомобилей’

Можно с большой степенью достоверности утверждать, что большинство приложений, которые предназначены для выполнения хотя бы какой-нибудь полезной работы, тем или иным образом используют структурированную информацию или, другими словами, упорядоченные данные. Такими данными могут быть, например, списки заказов на тот или иной товар, списки предъявленных и оплаченных счетов или список телефонных номеров. Обычное расписание движения автобусов в городе — это тоже пример упорядоченных данных.

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

Таким образом, дать простое определение базы данных можно следующим образом. База данных — это поименованная совокупность структурированных данных предметной области.

Учитывая интегрирование компьютерных технологий в повседневную жизнь, такие учреждения как, например, магазин продажи автомобилей могут использовать компьютерные программы для хранения различных данных (информация о машинах, о клиентах, заказах и т.д.).

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

Задачами курсового проекта является систематизация, закрепление и расширение теоретических и практических знаний по использованию готовых и созданию собственных баз данных, применяя систему объектно-ориентированного программирования Delphi, а также развитие навыков ведения самостоятельной работы.


Microsoft Access является настольной СУБД (система управления базами данных) реляционного типа. Достоинством Access является то, что она имеет очень простой графический интерфейс, который позволяет не только создавать собственную базу данных, но и разрабатывать приложения, используя

В отличие от других настольных СУБД, Access хранит все данные в одном файле, хотя и распределяет их по разным таблицам, как и положено реляционной СУБД. К этим данным относится не только информация в таблицах, но и другие объекты базы данных, которые будут описаны ниже.

Для выполнения почти всех основных операций Access предлагает большое количество Мастеров (Wizards), которые делают основную работу за пользователя при работе с данными и разработке приложений, помогают избежать рутинных действий и облегчают работу неискушенному в программировании пользователю.

9 стр., 4167 слов

Создание системы управления базами данных издательского дома

... СУБД Access предусмотрены также конструкторы (Builders), которые могут помочь пользователю сформировать синтаксически правильные выражения, например операторы и макрокоманды языка SQL. В рамках данной работы нам надо создать базу данных ... которая отражается в проектировании баз данных. Опишем нашу предметную область: Издательский дом специализируется в издательстве образовательной литературы для ...

Особенности MS Access, отличающиеся от представления об «идеальной» реляционной СУБД. Создание многопользовательской БД Access и получение одновременного доступа нескольких пользователей к общей базе данных возможно в локальной одноранговой сети или в сети с файловым сервером. Сеть обеспечивает аппаратную и программную поддержку обмена данными между компьютерами. Access следит за разграничением доступа разных пользователей к БД и обеспечивает защиту данных. При одновременной работе. Так как Access не является клиент серверной СУБД, возможности его по обеспечению многопользовательской работы несколько ограничены. Обычно для доступа к данным по сети с нескольких рабочих станций, файл БД Access (с расширением *. mdb или *. accdb) выкладывается на файловый сервер. При этом обработка данных ведется в основном на клиенте — там, где запущено приложение, в силу принципов организации файловых СУБД. Этот фактор ограничивает использование Access для обеспечения работы множества пользователей (более 15-20) и при большом количестве данных в таблицах, так как многократно возрастает нагрузка не сеть.

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

В отношении защиты информации и разграничения доступа Access не имеет надежных стандартных средств. В стандартные способы защиты входит защита с использованием пароля БД и защита с использованием пароля пользователя. Снятие такой защиты не представляет сложности для специалиста.

Однако при известных недостатках MS Access обладает большим количеством преимуществ по сравнению с системами подобного класса.

В первую очередь можно отметить распространенность, которая обусловлена тем, что Access является продуктом компании Microsoft, программное обеспечение и операционные системы которой использует большая часть пользователей персональных компьютеров. MS Access полностью совместим с операционной системой Windows, постоянно обновляется производителем, поддерживает множество языков.

В целом MS Access предоставляет большое количество возможностей за сравнительно небольшую стоимость. Также необходимо отметить ориентированность на пользователя с разной профессиональной подготовкой, что выражается в наличии большого количества вспомогательных средств (Мастеров, как уже отмечалось), развитую систему справки и понятный интерфейс. Эти средства облегчают проектирование, создание БД и выборку данных из нее.

база продажа автомобиль пользователь

MS Access предоставляет в распоряжение непрограммирующему пользователю разнообразные диалоговые средства, которые позволяют ему создавать приложения не прибегая к разработке запросов на языке SQL или к программированию макросов или модулей на языке VBA.обладает широкими возможностями по импорту/экспорту данных в различные форматы, от таблиц Excel и текстовых файлов, до практически любой серверной СУБД через механизм ODBC.

36 стр., 17812 слов

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

... доступ удаленного пользователя к корпоративной базе данных иногда может быть существенно затруднен. С другой стороны: всегда ли необходим удаленному пользователю полный доступ ко всей базе данных? ... баз данных В узком смысле слова, база данных - это некоторый набор данных, необходимых для работы (актуальные данные). Данные - это отражение объектов реального мира. В традиционной терминологии объекты ...

Еще одно немаловажное преимущество MS Access заключается в развитых встроенных средствах разработки приложений. Большинство приложений, распространяемых среди пользователей, содержит тот или иной объем кода VBA (Visual Basic for Applications).

Поскольку VBA является единственным средством для выполнения многих стандартных задач в Access (работа с переменными, построение команд SQL во время работы программы, обработка ошибок, использование Windows API и т.д.), для создания более-менее сложных приложений необходимо его знание и знание объектной модели MS Access.

Одним из средств программирования в Access является язык макрокоманд. Программы, созданные на этом языке, называются макросами и позволяют легко связывать отдельные действия, реализуемые с помощью форм, запросов, отчетов. Макросы управляются событиями, которые вызываются действиями пользователями при диалоговой работе с данными через формы или системными событиями.

Получается что Access, обладая всеми чертами СУБД, предоставляет и дополнительные возможности. Это не только гибкая и простая в использовании СУБД, но и система для разработки работающих с базами данных приложений.


Компоненты для работы с Microsoft ActiveX Data Objects (ADO) впервые появились в среде Delphi версии 5.- это технология стандартного обращения к реляционным структурам данных от Microsoft. Она аналогична BDE по назначению и сродни ему по возможностям.

В основе архитектуры ADO лежит объектная модель компонентов COM (Component Object Model).

Все объекты и интерфейсы ADO представляют собой интерфейсы и объекты СОМ.

Модель СОМ является базовой для технологий ActiveX и OLE. Проиллюстрировать это отношение можно на примере объекта TObject, как базового объекта для VC L Delphi.

Технология СОМ работаете так называемыми СОМ-обьектами. Во многом СОМ-объекты похожи на обычные объекты визуальной библиотеки компонентов Delphi. Но, в отличие от последних, СОМ-объекты не содержат поля, в них находятся лишь свойства и методы, а также интерфейсы.

Интерфейсы — это группы логически или семантически связанных процедур, которые обеспечивают связь между поставщиком услуги (сервером) и его клиентом. Названия интерфейсов начинаются с буквы I.

Обычный СОМ-объект включает в себя один или несколько интерфейсов. Кроме того, СОМ-объект содержит методы, которые позволяют приложению пользоваться им.

Технология СОМ имеет два явных плюса:

  • создание СОМ-объектов не зависит от языка программирования. Таким образом, СОМ-объекты могут быть написаны на различных языках;
  • СОМ-объекты пригодны для использования в любой среде программирования под Windows.

В число этих сред входятDelphi, Visual С++, С++ Builder, Visual Basic и многие другие.

ПРИМЕЧАНИЕ: Хотя технология СОМ имеет очевидные достоинства, ей свойственны также и минусы, среди которых можно выделить зависимость от платформы. Эта технология применима только в операционной системе Windows и на платформе Intel.

Технология СОМ реализуется с помощью СОМ-библиотек (такие файлы операционной системы, как OLE32. DLL и OLEAUT32. DLL).

СОМ-библиотеки содержат набор стандартных интерфейсов, которые отвечают за функциональность СОМ-объекта, а также небольшой набор функций API, обеспечивающих создание СОМ-объектов и управление ими.

17 стр., 8469 слов

Защита баз данных

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

В Delphi воплощение и поддержка технологии СОМ называется Delphi ActiveX framework, DAX. Реализация DAX описана в модуле AxCtrls.

Перечислим основные интерфейсы ADO и кратко поясним их назначение:

  • интерфейс IConnection выполняет следующие функции:
  • осуществляет связь с сервером;
  • управляет транзакциями;
  • получает информацию о произошедших ошибках (свойство Errors);
  • получает информацию о схеме данных (таблицы, поля и т.д.);
  • интерфейс IRecordset (на нижнем уровне ADO это IRowset) является аналогом TDataSet в Delphi и поддерживает текущее положение и перемещение курсора, закладки (Bookmarks), чтение, изменение и удаление записей и т.п.;
  • интерфейс IReld позволяет получать значение поля, его тип, длину и другие сведения о поле данных;
  • интерфейсы ICommand и IParameter обеспечивают работу с командами источника данных. Синтаксис команд для каждого из источников свой собственный;
  • интерфейс IProperty позволяет получать и устанавливать параметры, специфические для провайдера данных.

Для работы с механизмом ADO в Delphi 7 предназначены семь стандартных компонентов, расположенных на закладке ADO палитры компонентов

Первый компонент называется ADOConnection. Функционально он аналогичен компоненту Database закладки BDE. С помощью компонента ADOConnection можно указывать местоположение базы данных и работать с транзакциями. Рассмотрим основные свойства компонента ADOConnection, отображаемые в окне инспектора объектов

Следующий компонент закладки ADO называется ADOCommand. Он предназначен для выполнения SQL-команды без возврата результирующего набора данных

Третий компонент закладки ADO — ADODataSet. Его назначение — получение набора данных из одной или нескольких таблиц базы данных. Кроме того, он также позволяет работать с возвращенным набором данных визуальным компонентам, предназначенным для отображения данных. Это наиболее общий компонент для работы с набором данных, который может использоваться вместо компонентов ADOTable, ADOQuery или ADOStoredProc.

Следующий компонент закладки ADO называется ADOTable. Он является аналогом компонента Table, расположенного на закладке BDE, и предназначен для доступа к таблице с помощью механизма ADO. Компонент ADOTable имеет свойства, которые мы уже рассматривали ранее в компонентах Table и ADODataSet, поэтому мы не будем возвращаться к ним еще раз.

Компонент ADOStoredProc предназначен для вызова процедуры, хранимой на сервере базы данных. В отличие от BDE и InterBase хранимые процедуры в ADO могут возвращать набор данных, поэтому компонент такого типа является потомком DataSet и может выступать источником данных в компонентах типа DataSource.

Последний компонент закладки ADO называется RDSConnection. Этот компонент управляет маршалингом данных, когда набор записей переносится из одного компьютера на другой.

ПРИМЕЧАНИЕ: Маршалингом данных называется механизм, который позволяет клиенту получать доступ к объектам, расположенным в другом адресном пространстве или на другом компьютере.

На события в ADO возлагаются те же задачи, что и на события в VCL. Многие из событий ADO имеют аналоги в VCL, и соответствующие компоненты вызывают из событий ADO события VCL.

7 стр., 3486 слов

Создание базы данных «Музыкальные записи»

... записей, ориентированной на наборы. За руководство работой Data Base Task Group (DBTG), разработавшей стандартный язык описания данных и манипулирования данными, ... управления базами данных (СУБД) - специализированная программа ... записях; найти одну или несколько записей, удовлетворяющих заданному условию. Для выполнения этих операций используется механизм запросов. Результатом выполнения запросов ...

Все события в ADO условно разделим на несколько групп: события соединения, события транзакции, события выполнения команд. События соединения:

  • OnWillConnect — вызывается перед установкой соединения;
  • OnConnectComplete — вызывается после установки соединения;
  • OnDisconnect — активируется при разрыве соединения. Эти события инкапсулированы в компоненте ADOConnection. События транзакции:
  • OnBeginTransComplete — происходят при выполнении BeginTrans;
  • OnCommitTransComplete — происходят при выполнении CommitTrans;
  • OnRollbackTransComplete — вызываются при выполнении RollbackTrans.

События данной группы инкапсулированы в компоненте ADOConnection. События выполнения команд OnWillExecute и OnExecuteComplete вызываются перед выполнением команды и после него соответственно.

Эти события «зашиты» в компоненте ADOConnection, а не в ADOCommand, как можно было бы предположить. Указанная «странность» связана с тем, что в ADO объекта команды как такового нет, и по этой причине он не может получать сообщения.

В компонент ADOConnection также встроено событие OnlnfoMessage, которое вызывается по факту прихода с сервера дополнительной информации. Формат и назначение зависят от сервера, с которым вы работаете.

В ADO есть и события, связанные с набором данных, а не с соединением, как вышеописанные. Они инкапсулированы в компоненты, представляющие наборы данных: ADODataSet, ADOTable, ADOQuery и ADOStoredProc.

Эти события можно условно разбить на три группы.

События выборки данных.

  • OnFetchProgress — многократно вызывается в процессе выборки данных;
  • OnFetchComplete — завершение выборки.
  • Уведомления об изменении положения текущей записи в наборе:
  • OnWillMove — вызывается до изменения положения текущей записи. Позволяет отменить действие;
  • OnMoveComplete — вызывается после изменения положения текущей записи;
  • OnEndOfRecordset — генерируется при достижении конца набора данных. Позволяет добавить новую запись.

Уведомления об изменении набора данных.

  • OnWillChangeField, OnFieldChangeComplete — вызываются до и после изменения текущей записи набора;
  • OnWillChangeRecord, OnRecordChangeComplete — вызываются до и после изменения, добавления, удаления строки набора и при отмене этих действий;
  • OnWillChangeRecordset, OnRecordsetChangeComplete — вызываются до и после открытия, закрытия, повторного запроса и синхронизации набора данных.

Многие события допускают прерывание действия. Эта возможность полезна при асинхронной работе с сервером, например, для прерывания слишком длинного запроса.

В ADO есть возможность, не имеющая аналогов ни в BDE, ни в InterBase. Это асинхронное выполнение операций с сервером. Асинхронно могут выполняться:

  • установка соединения с сервером (Connection);
  • выполнение команды (Execute);
  • выборка данных (Fetch).

Для включения этого режима необходимо присвоить свойству ConnectOptions компонента ADOConnection значение coAsyncConnect.

21 стр., 10060 слов

Разработка базы данных для типографии

... СУБД, называются реляционными таблицами, а сами СУБД - реляционными базами данных. СУБД Microsoft Access 2000 и Microsoft Access 2002 ориентированы на работу с объектами семи различных типов: таблицами, запросами, ... технологий и баз данных в работу типографий. Цель данной работы проектирование и создание базы данных «Типографии», которая обеспечит структурированное хранение информации о работе с ...

При установлении соединения происходит следующее:

  • вызывается обработчик события OnWillConnect;
  • управление передается программе.
  • После завершения соединения, как успешного, так и ошибочного, вызывается обработчик события OnConnectComplete.

Надо заметить, что многие компоненты ADO при активизации или выполнении отрабатывают команду на языке SQL. Это такие компоненты, как ADOCommand, ADODataSet, ADOTable, ADOQuery и ADOStoredProc. Для асинхронного выполнения команды установите в свойстве ExecuteOptions значение coAsyncExecute. При выполнении команды будет происходить следующее:

  • вызовется обработчик события OnWillExecute;
  • управление передастся программе.

После окончания выполнения команды, как успешного, так и ошибочного, вызывается обработчик события OnExecuteComplete.

SQL (англ. structured query language — «структурированный язык запросов») — формальный непроцедурный язык программирования, применяемый для создания, модификации и управления данными в произвольной реляционной базе данных, управляемой соответствующей системой управления базами данных (СУБД).

SQL основывается на исчислении кортежей.

В начале 1970-х годов в одной из исследовательских лабораторий компании IBM была разработана экспериментальная реляционная СУБД IBM System R, для которой затем был создан специальный язык SEQUEL, позволявший относительно просто управлять данными в этой СУБД. Аббревиатура SEQUEL расшифровывалась как Structured English QUEry Language — «структурированный английский язык запросов». Позже по юридическим соображениям [2] язык SEQUEL был переименован в SQL. Когда в 1986 году первый стандарт языка SQL был принят ANSI (American National Standards Institute), официальным произношением стало [,es kju: ‘ el] — эс-кью-эл. Несмотря на это, даже англоязычные специалисты зачастую продолжают читать SQL как сиквел (по-русски часто говорят «эс-ку-эль» или используют жаргонизм «скуль»).

Целью разработки было создание простого непроцедурного языка, которым мог воспользоваться любой пользователь, даже не имеющий навыков программирования. Собственно разработкой языка запросов занимались Дональд Чэмбэрлин (Donald D. Chamberlin) и Рэй Бойс (Ray Boyce).

Пэт Селинджер (Pat Selinger) занималась разработкой стоимостного оптимизатора (cost-based optimizer), Рэймонд Лори (Raymond Lorie) занимался компилятором запросов.

Стоит отметить, что SEQUEL был не единственным языком подобного назначения. В Калифорнийском Университете Беркли была разработана некоммерческая СУБД Ingres (являвшаяся, между прочим, дальним прародителем популярной сейчас некоммерческой СУБД PostgreSQL), которая являлась реляционной СУБД, но использовала свой собственный язык QUEL, который, однако, не выдержал конкуренции по количеству поддерживающих его СУБД с языком SQL.

Первыми СУБД, поддерживающими новый язык, стали в 1979 году Oracle V2 для машин VAX от компании Relational Software Inc. (впоследствии ставшей компанией Oracle) и System/38 от IBM, основанная на System/R.является прежде всего информационно-логическим языком, предназначенным для описания, изменения и извлечения данных, хранимых в реляционных базах данных. SQL можно назвать языком программирования, при этом он не является тьюринг-полным, но вместе с тем стандарт языка спецификацией SQL/PSM предусматривает возможность его процедурных расширений.

30 стр., 14808 слов

Реферат локальные базы данных

... распределенные базы данных. В однородном случае каждая локальная база данных управляется одной и той же СУБД. В неоднородной системе локальные базы данных могут относиться даже к разным моделям данных. Сетевая интеграция неоднородных баз данных - ...

Изначально SQL был основным способом работы пользователя с базой данных и позволял выполнять следующий набор операций:

  • создание в базе данных новой таблицы;
  • добавление в таблицу новых записей;
  • изменение записей;
  • удаление записей;
  • выборка записей из одной или нескольких таблиц (в соответствии с заданным условием);
  • изменение структур таблиц.

Со временем SQL усложнился — обогатился новыми конструкциями, обеспечил возможность описания и управления новыми хранимыми объектами (например, индексы, представления, триггеры и хранимые процедуры) — и стал приобретать черты, свойственные языкам программирования.

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

Каждое предложение SQL — это либо запрос данных из базы, либо обращение к базе данных, которое приводит к изменению данных в базе. В соответствии с тем, какие изменения происходят в базе данных, различают следующие типы запросов:

  • запросы на создание или изменение в базе данных новых или существующих объектов (при этом в запросе описывается тип и структура создаваемого или изменяемого объекта);
  • запросы на получение данных;
  • запросы на добавление новых данных (записей);
  • запросы на удаление данных;
  • обращения к СУБД.

Основным объектом хранения реляционной базы данных является таблица, поэтому все SQL-запросы — это операции над таблицами. В соответствии с этим, запросы делятся на:

  • запросы, оперирующие самими таблицами (создание и изменение таблиц);
  • запросы, оперирующие с отдельными записями (или строками таблиц) или наборами записей.
  • Каждая таблица описывается в виде перечисления своих полей (столбцов таблицы) с указанием
  • типа хранимых в каждом поле значений;
  • связей между таблицами (задание первичных и вторичных ключей);
  • информации, необходимой для построения индексов.

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

  • вставка новой строки;
  • удаление строки или набора строк.

Самый главный вид запроса — это запрос, возвращающий (пользователю) некоторый набор строк, с которым можно осуществить одну из трёх операций:

  • просмотреть полученный набор;
  • изменить все записи набора;
  • удалить все записи набора.

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

Язык SQL представляет собой совокупность

  • операторов,
  • инструкций,
  • и вычисляемых функций.

Согласно общепринятому стилю программирования, операторы (и другие зарезервированные слова) в SQL обычно рекомендуется писать прописными буквами. [5] Операторы SQL делятся на:

17 стр., 8186 слов

Разработка базы данных учеников МОУ СОШ № 12 на языке Delphi

... СОШ №12, созданной в рамках дипломной работы базы данных, в первую очередь повлияет на снижение времени, затрачиваемого на поиск информации. База данных, имеющая техническую направленность на хранение, ... средства - это самим нанять программистов, которые разработают базу данных, доступную для школы. Школам выгодно приобрести такую базу данных, которая будет недорогой, но в то же время ...

  • операторы определения данных (Data Definition Language, DDL):
  • CREATE создает объект БД (саму базу, таблицу, представление, пользователя и т.д.),
  • ALTER изменяет объект,
  • DROP удаляет объект;
  • операторы манипуляции данными (Data Manipulation Language, DML):
  • SELECT считывает данные, удовлетворяющие заданным условиям,
  • INSERT добавляет новые данные,
  • UPDATE изменяет существующие данные,
  • DELETE удаляет данные;
  • операторы определения доступа к данным (Data Control Language, DCL):
  • GRANT предоставляет пользователю (группе) разрешения на определенные операции с объектом,
  • REVOKE отзывает ранее выданные разрешения,
  • DENY задает запрет, имеющий приоритет над разрешением;
  • операторы управления транзакциями (Transaction Control Language, TCL):
  • COMMIT применяет транзакцию,
  • ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции,
  • SAVEPOINT делит транзакцию на более мелкие участки.


Целью курсового проекта является закрепление и углубление знаний, полученных при изучении дисциплины «Базы данных”. Развитие навыков самостоятельной работы при проектировании реляционных баз данных и создании прикладных программ (приложений) для работы с реляционными базами данных.

Логическое (даталогическое) проектирование — создание схемы базы данных на основе конкретной модели данных, например, реляционной модели данных. Для реляционной модели данных даталогическая модель — набор схем отношений, обычно с указанием первичных ключей, а также «связей» между отношениями, представляющих собой внешние ключи.

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

На этапе логического проектирования учитывается специфика конкретной модели данных, но может не учитываться специфика конкретной СУБД.

Логическая структура реляционной базы данных Access является адекватным отображением полученной информационно-логической модели предметной области. Для канонической модели не требуется дополнительных преобразований. Каждый информационный объект модели данных отображается реляционной таблицей. Структура реляционной таблицы определяется реквизитным составом соответствующего информационного объекта, где каждое поле соответствует одному из реквизитов объекта. Ключевые реквизиты объекта образуют уникальный ключ реляционной таблицы. Для каждого поля задается тип, размер данных и др. свойства. Записи таблицы соответствуют экземплярам объекта и формируются при загрузке таблицы.

Связи между объектами данных реализуются одинаковыми реквизитами — ключами связи в соответствующих таблицах. При этом ключом связи типа 1: М всегда является уникальный ключ главной таблицы (Рисунок 3).

Язык представляет собой совокупность 1

Рисунок 3 — Даталогическая модель

В ходе проектирования БД «Магазин автомобилей » были разработаны следующие таблицы:

  • Заказы
  • Клиенты
  • Каталог

На основании описания предметной области спроектировать базу данных ER-методом с применением диаграмм ER-типа. Разработанные в результате проектирования таблицы находятся в нормальной форме Бойса-Кодда.

15 стр., 7056 слов

База данных для магазина музыкальных инструментов

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

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

а) ввод, редактирование и удаление записей таблиц базы данных без нарушения целостности данных, хранящихся в базе данных;

  • б) выборку данных по заданным условиям и предъявление результатов выборки на экране в удобном для пользователя виде;
  • в) обработку данных по заданному алгоритму;
  • г) создание заданных отчетов по базе данных.

д) вывод отчета проданных машин за 30 дней на экран и в файл

Вариант 20

Магазин продает автомобили по каталогу, в котором имеются данные о ряде моделей (название модели, фирма-изготовитель, мощность двигателя, число мест в салоне, расход топлива на 100 км. в литрах, объем багажника в дм. куб.).

Клиент, просмотрев каталог, заказывает нужную ему модель.

Магазин оформляет заказ и затем получает нужный автомобиль. Клиенту выписывается счет, в котором указывается модель автомобиля, его идентификационный номер (15 знаков), а также номера двигателя и кузова (14 знаков), цвет автомобиля и его цена. В счете обязательно указывается дата выписки счета и дата оплаты. После оплаты счета клиент получает автомобиль, о чем делается отметка в заказе (выполнен).

Кроме заказов и счетов, выпускается ежемесячно отчет с данными о продаже каждой модели (количество, сумма) и общей суммой продаж.

Клиент может сделать несколько заказов. Сведения о продавце не нужны.



Для корректной работы приложения необходимы следующие аппаратные и системные программные средства:

ADO

Использование ADO является альтернативой Borland Database Engine (BDE), обеспечивающей более эффективную работу с данными. Для использования этой возможности на вашем компьютере должна быть установлена система ADO 2.1 или более старшая версия. Кроме того должна быть установлена клиентская система доступа к данным, например, Microsoft SQL Server, а в ODBC должен иметься драйвер OLE DB для того типа баз данных, с которыми вы работаете.

Microsoft Office Access 2007

Microsoft Office Access 2007 является системой управления базами данных в которой можно создавать и редактировать базы данных.Office Access 2007 позволяет просматривать сведения о зависимостях между объектами базы данных. Просмотр списка объектов, используемых указанным объектом, помогает осуществлять поддержку базы данных и предотвращать ошибки, связанные с потерей источников записей.

  • Частота процессора не менее 500 МГц
  • Не менее 256 Мб оперативной памяти
  • 1,5-2 Гб свободного места на жёстком диске
  • Разрешение экрана не менее 1024×768 точек
  • Операционная система Windows XP с SP2, Windows Server 2003 с SP2 [1] или более новые версии.
  • Принтер
  • Клавиатура
  • Мышь

При открытии приложения открывается главное окно программы (Рисунок 4)

Язык представляет собой совокупность 2

Рисунок 4 — Главное окно программы

Нажав на «Оформление заказа» откроется каталог машин для выбора понравившейся машины и оформления заказа (Рисунок 5).

Рисунок 5 — Окно оформления заказа

При выборе машин можно сортировать данные по различным признакам. Для выбора понравившейся машины необходимо кликнуть двойным щелчком по строке таблицы или нажать кнопку «Оформить заказ» откроется форма по управлению заказом (Рисунок 6)

Язык представляет собой совокупность 3

Рисунок 6 — Оформление заказа

Заполнив все необходимые поля формы и нажав на кнопку «ОК» клиенту будет выписан счет (Рисунок 7).

Язык представляет собой совокупность 4

Рисунок 8 — Счет покупателю

Если вернуться к главное форме (Рисунок 4) и нажать на «Управление базой» то выйдет окно для работы с базой данных, ее редактирования и вывода отчетов о продаж, но прежде чем приступить к работе требуется ввести пароль (Рисунок 8).

Введем пароль для входа в базу данных и нажмем «ОК» появиться окно для управления базой

Нажав на кнопку «Редактирование таблиц» появиться форма для удаление, изменения и добавления записей в таблицу

Если вернуться в окно управления базой (Рисунок 9) и нажать на кнопку «Работа с данными» выйдет список форм для открытия. Самой первой формой является форма поиск клиента

Перейдя во вкладку «Продажи» можно увидеть продажи машин по клиентам

Перейдя по вкладку «Поиск автомобиля» откроется форма для поиска нужного автомобиля

Перейдя во вкладку обработка заказов появиться окно для работы с заказами, можно посмотреть обработанные и не обработанные заказы, а так же просроченные заказы

Нажав на кнопку «Просроченные заказы» выйдет форма, в которой выведены только те заказы, у которых дата оплаты просрочена, эти записи можно редактировать

Если вернуться на форму «Управление базой» и нажать на вкладку «Отчеты» можно посмотреть отчет о продажах за месяц (Рисунок 16).

Выбираем месяц и нажимаем «ОК».

После выбора соответствующего месяца будет выведен и сохранен в файл отчет о продажах за месяц


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

  • просмотр и редактирование данных;
  • поиск и редактирование записей о машинах;
  • поиск и редактирование записей о клиентах;
  • Поиск и обработка заказов;
  • Печать чека;
  • Просмотр машин в магазине;
  • Просмотр отчета проданных машин за 30 дней на экране, и вывод этого отчета в файл;


1. Карпова Т.С. Базы данных: модели, разработка. — СПб.: Питер, 2001, 304 с.

2. Петров В.Н. Информационные системы. — СПб.: Питер, 2002.

  • Фаронов В.В. Программирование баз данных в Delphi 7: Учебный курс. — СПб.: Питер, 2004 — 464 с.
  • Кренке Д.

Теория и практика построения баз данных: [пер. с англ] / Д. Кренке. — 9 — е изд. — СПб.: Питер, 2005. — 858 с.

  • Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных: Учебник для высших учебных заведений / Под ред. проф. А.Д. Хомоненко. — СПб.: КОРОНА принт, 2000. — 416 с.
  • Карпова Т.С.

Базы данных: модели, разработка, реализация. — СПб.: Питер, 2001. — 304с.

  • Ульман Дж., Уидом Дж. Введение в системы баз данных. — М.: Лори, 2000. — 374с.
  • Мейер Д.

Теория реляционных баз данных. — М.: Мир, 1987. — 608с.

  • Джексон Г. Проектирование реляционных баз данных для использования с микро — ЭВМ. — М.: Мир, 1991.
  • Четвериков В.Н.

и др. Базы и банки данных. — М.: Высш. шк., 1987.

  • Бойко В.В., Савинов В.М. Проектирование баз данных информационных систем. — М.: Финансы и статистика, 1989.
  • Дейт К.

Введение в системы баз данных. — К.: Диалектика, 1998.

  • Хансен Г., Хансен Д. Базы данных: разработка и управление. — М.: БИНОМ, 1999.


Приложение 1. Исходный код программы

Главная форма программы.

Главная форма программы  1

main;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls;= class (TForm): TGroupBox;: TRadioButton;: TRadioButton;: TButton;Button1Click (Sender: TObject);

{ Private declarations }

{ Public declarations };: TMainForm;katalog, password;

  • {$R *. dfm}TMainForm. Button1Click (Sender: TObject);RadioButton1. Checked. Show. Show;.

Форма ModulBD

Главная форма программы  2

Здесь расположены невидимые компоненты, для работы с базой данных

Форма выбора машины по каталогу

Форма выбора машины по каталогу 1

katalog;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Grids, DBGrids, StdCtrls;= class (TForm): TDBGrid;: TGroupBox;: TRadioButton;: TRadioButton;: TRadioButton;: TRadioButton;: TGroupBox;: TEdit;: TButton;: TEdit;: TButton;: TButton;FormActivate (Sender: TObject);RadioButton1Click (Sender: TObject);RadioButton2Click (Sender: TObject);RadioButton3Click (Sender: TObject);RadioButton4Click (Sender: TObject);Button1Click (Sender: TObject);Button2Click (Sender: TObject);Button3Click (Sender: TObject);DBGrid1DblClick (Sender: TObject);

{ Private declarations }

{ Public declarations };: TKatalogAvto;main, module, zak;

  • {$R *. dfm}TKatalogAvto. FormActivate (Sender: TObject);. ADOQuery_Katalog. SQL. Clear;. ADOQuery_Katalog. SQL. Add (‘SELECT * FROM Catalogs’);. ADOQuery_Katalog. Active: =True;;TKatalogAvto. RadioButton1Click (Sender: TObject);. ADOQuery_Katalog. SQL. Clear;. ADOQuery_Katalog. SQL. Add (‘SELECT * FROM Catalogs ORDER BY Engine_power DESC ‘);. ADOQuery_Katalog. Active: =True;;TKatalogAvto. RadioButton2Click (Sender: TObject);. ADOQuery_Katalog. SQL. Clear;. ADOQuery_Katalog. SQL. Add (‘SELECT * FROM Catalogs ORDER BY Number_seats DESC ‘);. ADOQuery_Katalog. Active: =True;;TKatalogAvto. RadioButton3Click (Sender: TObject);. ADOQuery_Katalog. SQL. Clear;. ADOQuery_Katalog. SQL. Add (‘SELECT * FROM Catalogs ORDER BY Rashod_topliva DESC’);. ADOQuery_Katalog. Active: =True;;TKatalogAvto. RadioButton4Click (Sender: TObject);. ADOQuery_Katalog. SQL. Clear;. ADOQuery_Katalog. SQL. Add (‘SELECT * FROM Catalogs ORDER BY Volume_trunk DESC’);. ADOQuery_Katalog. Active: =True;;TKatalogAvto. Button1Click (Sender: TObject);. ADOQuery_Katalog. SQL. Clear;. ADOQuery_Katalog. SQL. Add (‘SELECT * FROM Catalogs WHERE Marka_modeli LIKE »’+Edit1. Text+»’ and Model LIKE »’+Edit2. Text+»»);. ADOQuery_Katalog. Active: =True;;TKatalogAvto. Button2Click (Sender: TObject);. ADOQuery_Katalog. SQL. Clear;. ADOQuery_Katalog. SQL. Add (‘SELECT * FROM Catalogs’);. ADOQuery_Katalog. Active: =True;;TKatalogAvto. Button3Click (Sender: TObject);. Show;;TKatalogAvto. DBGrid1DblClick (Sender: TObject);. Show;. Edit2. Text: = DBGrid1. DataSource. DataSet. Fields [0].

AsString;. Edit9. Text: = DBGrid1. DataSource. DataSet. Fields [1].

AsString;. Edit10. Text: = DBGrid1. DataSource. DataSet. Fields [2].

AsString;;.

Форма оформления заказа

Форма оформления заказа 1

zak;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls;= class (TForm): TButton;: TGroupBox;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TButton;: TButton;: TEdit;: TEdit;: TLabel;: TLabel;: TEdit;: TEdit;Button1Click (Sender: TObject);Button2Click (Sender: TObject);Button3Click (Sender: TObject);

{ Private declarations }

{ Public declarations };: TZakaz;klient, avto, module, zak2, main, cek;

  • {$R *. dfm}TZakaz. Button1Click (Sender: TObject);. Show;;TZakaz. Button2Click (Sender: TObject);_Avto. show;;TZakaz. Button3Click (Sender: TObject);,warehouseid, i: Integer;. ADOQuery_Zakaz. Insert;: =ModuleBD. ADOQuery_Zakaz. RecordCount+1;. ADOQuery_Zakaz. FieldByName (‘id_orders’).

    AsInteger: = zakazid;. ADOQuery_Zakaz. FieldByName (‘id_clients’).

    AsInteger: = StrToInt (Edit1. Text);. ADOQuery_Zakaz. FieldByName (‘Order_status’).

    AsBoolean: =false;. ADOQuery_Zakaz. FieldByName (‘Status_oplati’).

    AsBoolean: =false;. ADOQuery_Zakaz. FieldByName (‘Date_vipiski’).

    AsString: =Edit7. Text;. ADOQuery_Zakaz. FieldByName (‘Date_oplati’).

    AsString: =Edit8. Text;. ADOQuery_Zakaz. FieldByName (‘№_engine’).

    AsInteger: = StrToInt (Edit3. Text);. ADOQuery_Zakaz. FieldByName (‘№_kuzova’).

    AsInteger: = StrToInt (Edit4. Text);. ADOQuery_Zakaz. FieldByName (‘Color’).

    AsString: =Edit5. Text;. ADOQuery_Zakaz. FieldByName (‘Price’).

    AsString: =Edit6. Text;. ADOQuery_Zakaz. FieldByName (‘id_cars’).

    AsFloat: = StrToFloat (Edit2. Text);. QRLabel13. Caption: =Edit9. Text;. QRLabel14. Caption: =Edit10. Text;. QRLabel15. Caption: =Edit2. Text;. QRLabel16. Caption: =Edit3. Text;. QRLabel17. Caption: =Edit4. Text;. QRLabel18. Caption: =Edit5. Text;. QRLabel19. Caption: =Edit8. Text;. QRLabel20. Caption: =Edit7. Text;. QRLabel12. Caption: =Edit6. Text;. QuickRep1. PreviewModal;;.

Форма ввода пароля для доступа к базе

Форма ввода пароля для доступа к базе 1

password;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls;= class (TForm): TEdit;: TButton;Edit1Change (Sender: TObject);Button1Click (Sender: TObject);FormActivate (Sender: TObject);

{ Private declarations }

{ Public declarations };: TPassForm;main, admin;

  • {$R *. dfm}TPassForm. Button1Click (Sender: TObject);. visible: = true;. Visible: = false;;TPassForm. Edit1Change (Sender: TObject);Edit1. Text = ‘1’ then begin. Enabled: = true;
  • end;;TPassForm. FormActivate (Sender: TObject);. Clear;. Enabled: = false;;.

Форма управления БД

admin;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Menus;= class (TForm): TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;N9Click (Sender: TObject);N1Click (Sender: TObject);N4Click (Sender: TObject);N5Click (Sender: TObject);N6Click (Sender: TObject);N7Click (Sender: TObject);N10Click (Sender: TObject);N8Click (Sender: TObject);

{ Private declarations }

{ Public declarations };: TUpravlenie;edit, klient, prodan, avto, zak2, skld, otchet;

  • {$R *. dfm}TUpravlenie. N9Click (Sender: TObject);. Close;;TUpravlenie. N1Click (Sender: TObject);. Show;;TUpravlenie. N4Click (Sender: TObject);. Show;;TUpravlenie. N5Click (Sender: TObject);. Show;;TUpravlenie. N6Click (Sender: TObject);_Avto. Show;;TUpravlenie. N7Click (Sender: TObject);. Show;;TUpravlenie. N10Click (Sender: TObject);. Show;;TUpravlenie. N8Click (Sender: TObject);_za_mec. Show;;.

Форма просмотра и редактирования БД

Форма просмотра и редактирования бд 1

edit;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Grids, DBGrids, ExtCtrls, DBCtrls, StdCtrls;= class (TForm): TDBGrid;: TDBNavigator;: TGroupBox;: TComboBox;: TGroupBox;: TEdit;: TButton;FormActivate (Sender: TObject);ComboBox1Change (Sender: TObject);Button1Click (Sender: TObject);

{ Private declarations }

{ Public declarations };: TEditBD;module;

  • {$R *. dfm}TEditBD. FormActivate (Sender: TObject);. ADOQuery_Edit. SQL. Clear;. ADOQuery_Edit. SQL. Add (‘SELECT * FROM Catalogs’);. ADOQuery_Edit. Active: =True;;TEditBD.comboBox1Change (Sender: TObject);ComboBox1. Text=’Клиенты’ then. ADOQuery_Edit. SQL. Clear;. ADOQuery_Edit. SQL. Add (‘SELECT * FROM Clients’);. ADOQuery_Edit. Active: =True;;ComboBox1. Text=’Каталог’ then. ADOQuery_Edit. SQL. Clear;. ADOQuery_Edit. SQL. Add (‘SELECT * FROM Catalogs’);. ADOQuery_Edit. Active: =True;;ComboBox1. Text=’Заказы’ then. ADOQuery_Edit. SQL. Clear;. ADOQuery_Edit. SQL. Add (‘SELECT * FROM Orders’);. ADOQuery_Edit. Active: =True;;;TEditBD. Button1Click (Sender: TObject);ComboBox1. Text=’Клиенты’ then. ADOQuery_Edit. SQL. Clear;. ADOQuery_Edit. SQL. Add (‘SELECT * FROM Clients WHERE id_clienta LIKE »’+Edit1. Text+»»);. ADOQuery_Edit. Active: =True;;ComboBox1. Text=’Каталог’ then. ADOQuery_Edit. SQL. Clear;. ADOQuery_Edit. SQL. Add (‘SELECT * FROM Catalogs WHERE id_cars LIKE »’+Edit1. Text+»»);. ADOQuery_Edit. Active: =True;;ComboBox1. Text=’Склад’ then. ADOQuery_Edit. SQL. Clear;. ADOQuery_Edit. SQL. Add (‘SELECT * FROM Warehouse WHERE id_warehouse LIKE »’+Edit1. Text+»»);. ADOQuery_Edit. Active: =True;;ComboBox1. Text=’Заказы’ then. ADOQuery_Edit. SQL. Clear;. ADOQuery_Edit. SQL. Add (‘SELECT * FROM Orders WHERE id_orders LIKE »’+Edit1. Text+»»);. ADOQuery_Edit. Active: =True;;;.

Форма для поиска клиента

Форма для поиска клиента 1

klient;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Grids, DBGrids;= class (TForm): TDBGrid;: TGroupBox;: TEdit;: TButton;: TButton;FormActivate (Sender: TObject);Button1Click (Sender: TObject);Button2Click (Sender: TObject);DBGrid1DblClick (Sender: TObject);

{ Private declarations }

{ Public declarations };: TPoiskKlienta;module, zak;

  • {$R *. dfm}TPoiskKlienta. FormActivate (Sender: TObject);. ADOQuery_Klient. SQL. Clear;. ADOQuery_Klient. SQL. Add (‘SELECT * FROM Clients’);. ADOQuery_Klient. Active: =True;;TPoiskKlienta. Button1Click (Sender: TObject);. ADOQuery_Klient. SQL. Clear;. ADOQuery_Klient. SQL. Add (‘SELECT * FROM Clients WHERE Familya LIKE »’+Edit1. Text+»»);. ADOQuery_Klient. Active: =True;;TPoiskKlienta. Button2Click (Sender: TObject);. ADOQuery_Klient. SQL. Clear;. ADOQuery_Klient. SQL. Add (‘SELECT * FROM Clients ‘);. ADOQuery_Klient. Active: =True;;TPoiskKlienta. DBGrid1DblClick (Sender: TObject);. Edit1. Text: = DBGrid1. DataSource. DataSet. Fields [0].

AsString;;.

Форма для вывода продаж по клиентам

Форма для вывода продаж по клиентам 1

prodan;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Grids, DBGrids, StdCtrls;= class (TForm): TDBGrid;FormActivate (Sender: TObject);

{ Private declarations }

{ Public declarations };: TProdano;module;

  • {$R *. dfm}TProdano. FormActivate (Sender: TObject);. ADOQuery_Prodano. SQL. Clear;. ADOQuery_Prodano. SQL. Add (‘SELECT id_clienta,Familya, (SELECT Count (id_clients) FROM Orders WHERE (Orders. id_clients=Clients. id_clienta) GROUP BY id_clienta) AS Кол_воМашин FROM Clients’);. ADOQuery_Prodano. Active: =True;;.

Форма для поиска автомобиля

Форма для поиска автомобиля 1

avto;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Grids, DBGrids, StdCtrls;_Avto = class (TForm): TDBGrid;: TGroupBox;: TRadioButton;: TRadioButton;: TRadioButton;: TRadioButton;: TGroupBox;: TEdit;: TButton;: TButton;FormActivate (Sender: TObject);Button1Click (Sender: TObject);RadioButton1Click (Sender: TObject);RadioButton2Click (Sender: TObject);RadioButton3Click (Sender: TObject);RadioButton4Click (Sender: TObject);Button2Click (Sender: TObject);DBGrid1DblClick (Sender: TObject);

{ Private declarations }

{ Public declarations };_Avto: TForm_Avto;module, zak;

  • {$R *. dfm}TForm_Avto. FormActivate (Sender: TObject);. ADOQuery_Avto. SQL. Clear;. ADOQuery_Avto. SQL. Add (‘SELECT * FROM Catalogs’);. ADOQuery_Avto. Active: =True;;TForm_Avto. Button1Click (Sender: TObject);. ADOQuery_Avto. SQL. Clear;. ADOQuery_Avto. SQL. Add (‘SELECT * FROM Catalogs WHERE Marka_modeli LIKE »’+Edit1. Text+»»);. ADOQuery_Avto. Active: =True;;TForm_Avto. RadioButton1Click (Sender: TObject);. ADOQuery_Avto. SQL. Clear;. ADOQuery_Avto. SQL. Add (‘SELECT * FROM Catalogs ORDER BY Engine_power DESC ‘);. ADOQuery_Avto. Active: =True;;TForm_Avto. RadioButton2Click (Sender: TObject);. ADOQuery_Avto. SQL. Clear;. ADOQuery_Avto. SQL. Add (‘SELECT * FROM Catalogs ORDER BY Number_seats DESC ‘);. ADOQuery_Avto. Active: =True;;TForm_Avto. RadioButton3Click (Sender: TObject);. ADOQuery_Avto. SQL. Clear;. ADOQuery_Avto. SQL. Add (‘SELECT * FROM Catalogs ORDER BY Rashod_topliva DESC’);. ADOQuery_Avto. Active: =True;;TForm_Avto. RadioButton4Click (Sender: TObject);. ADOQuery_Avto. SQL. Clear;. ADOQuery_Avto. SQL. Add (‘SELECT * FROM Catalogs ORDER BY Volume_trunk DESC’);. ADOQuery_Avto. Active: =True;;TForm_Avto. Button2Click (Sender: TObject);. ADOQuery_Avto. SQL. Clear;. ADOQuery_Avto. SQL. Add (‘SELECT * FROM Catalogs’);. ADOQuery_Avto. Active: =True;;TForm_Avto. DBGrid1DblClick (Sender: TObject);. Edit2. Text: = DBGrid1. DataSource. DataSet. Fields [0].

AsString;. Edit9. Text: = DBGrid1. DataSource. DataSet. Fields [1].

AsString;. Edit10. Text: = DBGrid1. DataSource. DataSet. Fields [2].

AsString;;.

Форма для обработки заказов

Форма для обработки заказов 1

zak2;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Grids, DBGrids, StdCtrls;= class (TForm): TDBGrid;: TButton;: TButton;: TButton;FormActivate (Sender: TObject);Button2Click (Sender: TObject);Button1Click (Sender: TObject);Button3Click (Sender: TObject);

{ Private declarations }

{ Public declarations };: TZakazi;module, proc;

  • {$R *. dfm}TZakazi. FormActivate (Sender: TObject);
  • {ModuleBD.

ADOQuery_Zakaz. SQL. Clear;. ADOQuery_Zakaz. SQL. Add (‘SELECT * FROM Orders’);. ADOQuery_Zakaz. Active: =True; };TZakazi. Button2Click (Sender: TObject);. ADOQuery_Zakaz. SQL. Clear;. ADOQuery_Zakaz. SQL. Add (‘SELECT * FROM Orders where Order_status = true’);. ADOQuery_Zakaz. Active: =True;;TZakazi. Button1Click (Sender: TObject);. ADOQuery_Zakaz. SQL. Clear;. ADOQuery_Zakaz. SQL. Add (‘SELECT * FROM Orders where Order_status = false’);. ADOQuery_Zakaz. Active: =True;;TZakazi. Button3Click (Sender: TObject);_Prosrochka. Show;;.

Форма для просмотри и редактирования просроченных заказов

*Orders(Status_oplati=False) AND (Date_oplati=Format (Date ()))

Форма для выбора отчета за месяц

otchet;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls;, monthname: string;_za_mec = class (TForm): TComboBox;: TButton;ComboBox1Click (Sender: TObject);Button1Click (Sender: TObject);

{ Private declarations }

{ Public declarations };_za_mec: TOtchet_za_mec;otch;

  • {$R *. dfm}TOtchet_za_mec.comboBox1Click (Sender: TObject);ComboBox1. ItemIndex of

: ShowMessage (‘Выберите месяц! ‘);

  • : begin month: =’__.01.2014′;
  • monthname: =’Январь 2014′;
  • end;
  • : begin month: =’__.02.2014′;
  • monthname: =’Февраль 2014′;
  • end;
  • : begin month: =’__.03.2014′;
  • monthname: =’Март 2014′;
  • end;
  • : begin month: =’__.04.2014′;
  • monthname: =’Апрель 2014′;
  • end;
  • : begin month: =’__.05.2014′;
  • monthname: =’Май 2014′;
  • end;
  • : begin month: =’__.06.2014′;
  • monthname: =’Июнь 2014′;
  • end;
  • : begin month: =’__.07.2014′;
  • monthname: =’Июль 2014′;
  • end;
  • : begin month: =’__.08.2014′;
  • monthname: =’Август 2014′;
  • end;
  • : begin month: =’__.09.2014′;
  • monthname: =’Сентябрь 2014′;
  • end;
  • : begin month: =’__.10.2014′;
  • monthname: =’Октябрь 2014′;
  • end;
  • : begin month: =’__.11.2014′;
  • monthname: =’Ноябрь 2014′;
  • end;


Приложение 2. Блок схемы основных форм

Блок-схема оформления заказа

Блок схема ввода пароля для доступа к базе

Блок схема на просмотр и редактирования БД

Блок схема для вывода продаж по клиентам