База данных "Магазин по продаже дисков"

Реферат



База данных, запросы, сортировка и фильтрация, добавление и удаление дисков.



	Целью курсовой работы является разработка автоматизированного рабочего места для продавца компакт дисков, в среде Borland C++ Builder.

	Объект исследования – магазин по продажи компакт дисков.

	Предмет исследования – процесс учета продукции в магазине.

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

	




	Содержание



	Введение

	1. Описание предметной области

	1.1 Общие положения

	1.2 Сведения из теории

	1.2.1 Классификация баз данных

	1.2.2 Форма – Form

	1.2.3 Свойства компонента Edit (поле редактирования текста)

	1.2.4 Свойства компонента Label (поле вывода текста)

	1.2.5 Свойства компонента DBGrid

	1.2.6 Свойства компонента CheckBox

	1.2.7 Свойства компонента Button

1.2.8 Свойства компонента TTabSheet

	1.3 Постановка задачи

	1.3.1 Название и назначение разрабатываемого приложения

	1.3.2 Спецификация входных и выходных данных

	1.3.3 Обоснование выбора средства программирования

	1.3.4 Требования к аппаратной части и ПО

	2. Технология разработки приложения

	2.1 Макет приложения

	2.1.1 Описание экранных форм

	2.1.2 Описание файлов проекта

	2.2 Описание программы

	2.3 Результаты работы программы

	3. Руководство пользователя

	Заключение

	Список использованных источников

	Приложения


Введение



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

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

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

Одной из широко используемых сред разработки является Borland C++Builder, который позволяет создавать различные приложения: от простейших однооконных приложений до программ распределения баз данных, поэтому именно с помощью его я и решил разработать своё приложение которое назвал “Автоматизированное рабочее места для продавца компакт дисков“.

	Объект курсовой работы – магазин по продаже компакт дисков.

	Предмет курсовой работы – процесс учета продукции в магазине.

	Целью курсовой работы является разработка автоматизированного рабочего места продавца компакт дисков в среде Borland C++ Builder.

Исходя из цели работы, я определил для себя следующие задачи:

1) Разработать и описать предметную область программы;

2) Разработать алгоритм на языке С++;

3) Показать возможности применения автоматизированного рабочего менеджера (т.е. осуществить программную реализацию и протестировать разработанное приложение);

Содержательная часть данной работы разделена на 3 главы:

в первой главе:

обосновывается актуальность темы, формулируется объект, предмет и цель;

общие сведения по использованию БД;

название и назначение разработанного приложения; обосновывается и описывается выбор средства программирования; описывается требуемое оборудование и ПО.

последовательно описывается решение сформулированных задач и этапов работы.

во второй главе:

даётся подробное описание технологии работы с разработанным приложением.

в третьей главе:

сформулировано заключение, содержащее основные выводы по результатам исследования, отражающее практическую значимость работы, предложения по использованию результатов;

представлен список источников, которые были использованы в ходе курсовой работы;

представлены приложения: листинг программного продукта.






		1. Описание предметной области



1.1 Общие положения



При проектировании базы данных решаются две основные проблемы:

1.Отображение объектов предметной области в абстрактные объекты модели данных таким образом, чтобы это отображение не противоречило семантике предметной области, и было по возможности лучшим (эффективным, удобным и т.д.). Часто эту проблему называют проблемой логического проектирования баз данных;

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

Проблема проектирования реляционной базы данных состоит в обоснованном принятии решений о том, из каких отношений (таблиц) должна состоять БД и какие атрибуты (характеристики и свойства) должны быть у этих отношений.

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

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

	Объект курсовой работы – магазин по продажи компакт дисков.

	Предмет курсовой работы – процесс учета продукции в магазине.

	Целью курсовой работы является разработка автоматизированного рабочего места продавца компакт дисков в среде Borland C++ Builder.

Исходя из цели работы, я определил для себя следующие задачи:

1) Разработать и описать предметную область программы;

2) Разработать алгоритм на языке С++;

3) Показать возможности применения менеджера

(осуществить программную реализацию и протестировать разработанное приложение);



1.2 Сведения из теории



1.2.1 Классификация Баз данных

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

К основным понятиям сетевой модели базы данных относятся: уровень, элемент (узел), связь. Узел — это совокупность атрибутов данных, описывающих некоторый объект. На схеме иерархического дерева узлы представляются вершинами графа. В сетевой структуре каждый элемент может быть связан с любым другим элементом. Сетевые базы данных подобны иерархическим, за исключением того, что в них имеются указатели в обоих направлениях, которые соединяют родственную информацию. Несмотря на то, что эта модель решает некоторые проблемы, связанные с иерархической моделью, выполнение простых запросов остается достаточно сложным процессом. Также, поскольку логика процедуры выборки данных зависит от физической организации этих данных, то эта модель не является полностью независимой от приложения. Другими словами, если необходимо изменить структуру данных, то нужно изменить и приложение.

Реляционная база данных — база данных, основанная на реляционной модели данных. Термин «реляционный» означает, что теория основана на математическом понятии отношение (relation). В качестве неформального синонима термину «отношение» часто встречается слово таблица. Необходимо помнить, что «таблица» есть понятие нестрогое и неформальное и часто означает не «отношение» как абстрактное понятие, а визуальное представление отношения на бумаге или экране. Некорректное и нестрогое использование термина «таблица» вместо термина «отношение» нередко приводит к недопониманию. Наиболее частая ошибка состоит в рассуждениях о том, что РМД имеет дело с «плоскими», или «двумерными» таблицами, тогда как таковыми могут быть только визуальные представления таблиц. Отношения же являются абстракциями, и не могут быть ни «плоскими», ни «неплоскими». Объектно-ориентированная база данных — база данных, в которой данные оформлены в виде моделей объектов, включающих прикладные программы, которые управляются внешними событиями. Результатом совмещения возможностей (особенностей) баз данных и возможностей объектно-ориентированных языков программирования являются Объектно-ориентированные системы управления базами данных (ООСУБД). ООСУБД позволяет работать с объектами баз данных также, как с объектами в программировании на ООЯП. ООСУБД расширяет языки программирования, прозрачно вводя долговременные данные, управление параллелизмом, восстановление данных, ассоциированные запросы и другие возможности.

Так же к основным моделям данных относятся: Многомерные, Объектные, Объектно-реляционные и т.д.

	

1.2.2 Форма – Form

Форма является самым основным компонентом программы, на которую программистом размещаются другие объекты приложения. Свойства формы необходимо знать, так как от этого зависит дизайн программы, т.е. цвет, стиль, размер текста, размещение рисунков, ширина и длина кнопок и других объектов. Форма появляется сразу же после запуска RAD – системы С++Builder.



Таблица 1.1 - Свойства формы

Свойство

Описание

Font

Шрифт, используемый «по умолчанию» компонентами, находящимися на поверхности формы. Изменение свойства Font формы приводит к автоматическому изменению свойства Font компонента, располагающегося на поверхности формы. То есть компоненты наследуют свойство Font от формы (имеется возможность запретить наследование)

Caption

Текст заголовка для управления формой и доступа к компонентам формы

ClientWidth

Ширина рабочей (клиентской) области формы, т.е. без учёта ширины левой и правой границ

ClientHeight

Высота рабочей (клиентской) области формы, т.е. без учёта высоты заголовка и ширины нижней границы формы

Icon

Значок в заголовке окна

BorderIcons

Кнопки управления окном. Значение свойства определяет, какие кнопки управления окном будут доступны пользователю во время работы приложения. Значение свойства задаётся путём присвоения значений уточняющим свойствам biSystemMenu, biMinimize, biMaximize, и biHelp. Свойство biSystemMenu определяет доступность кнопки системного меню, biMinimize – кнопки свернуть, biMaximize – развернуть, biHelp – кнопки вывода справочной информации

Color

Цвет фона. Цвет можно задать, указав название цвета и привязку к текущей цветовой схеме операционной системы.

Canvas

Поверхность, на которую можно вынести графику






1.2.3 Свойства компонента Edit (поле редактирования текста)

Компонент Edit используется для считывания информации, вводимой с клавиатуры.



Таблица 1.2 - Свойства Edit

Свойство

Описание

Name

Имя компонента. Используется в программе для доступа к компоненту и его свойствам, в частности для доступа к тексту, введенному в поле редактирования

Text

Текст, находящийся в поле ввода и редактирования

Left

Расстояние от левой границы компонента до левой границы формы

Top

Расстояние от верхней границы компонента до верхней границы формы

Height

Высота поля

Width

Ширина поля

Font

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

ParentFont

Признак наследования компонентом характеристик шрифта формы, на которой находится компонент. Если значение свойства равно true, то при изменении свойства Font формы автоматически меняется значение свойства Font компонента

Enabled

Используется для ограничения возможности изменить текст в поле редактирования. Если значение свойства равно false, то текст в поле редактирования изменить нельзя

Visible

Позволяет скрыть компонент (false) или сделать его видимым (true)



1.2.4 Свойства компонента Label (поле вывода текста)

Данный компонент предназначен для вывода теста на поверхность формы, его свойства определяют вид и расположение текста.



Таблица 1.2 - Свойства Label

Свойство

Описание

Name

Имя компонента. Используется в программе для доступа к компоненту и его свойствам

Caption

Отображаемый текст

Left

Расстояние от левой границы поля вывода до левой границы формы

Top

Расстояние от верхней границы поля вывода до верхней границы формы

Height

Высота поля вывода

Width

Ширина поля вывода

AutoSize

Признак того, что размер поля определяется его содержимым

Wordwrap

Признак того, что слова, которые не помещаются в текущей строке, автоматически переносятся на следующую строку (значение свойства AutoSize должно быть false)

Alignment

Задает способ выравнивания текста внутри поля. Текст может быть выровнен по левому краю (taLeftJustify), по центру (taCenter) или по правому краю (taRight Justify)

Font

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

Parent Font

Признак наследования компонентом характеристик шрифта формы, на которой находится компонент. Если значение свойства равно true, то текст выводится шрифтом, установленным для формы

Color

Цвет фона области вывода текста

Visible

Позволяет скрыть текст (false) или сделать его видимым (true)



1.2.5 Свойства компонента DBGrid

Компонент DBGrid отображает набор данных в формате электронной таблицы.



Таблица 1.3 - Свойства компонента DBGrid

DataSource

Источник данных (компонент Table или Query)

Columns

Отображаемая информация (поля записей)

Options.dgTitles

Разрешает вывод строки заголовка столбцов

Options.dglndicator

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

Options.dgColumnResize

Разрешает менять во время работы программы ширину колонок таблицы

Options.dgColLines

Разрешает выводить линии, разделяющие колонки таблицы

Options.dgRowLines

Разрешает выводить линии, разделяющие строки таблицы






1.2.6 Свойства компонента CheckBox

Компонент CheckBox представляет собой независимую кнопку (переключатель).



Таблица 1.4 – Свойства CheckBox

Свойство

Описание

Caption

Текст, который находится справа от флажка

Checked

Состояние, внешний вид флажка: если флажок установлен (в квадратике есть «галочка»), то значение Checked равно true; если флажок сброшен (нет «галочки»), то значение Checked равно false

State

Состояние флажка. В отличие от свойства Checked, позволяет различать установленное, сброшенное и промежуточное состояния. Состояние флажка определяет одна из констант: cbChecked (установлен); cbGrayed (серый, неопределённое состояние); cbUnChecked (сброшен)

AllowGrayed

Свойство определяет, может ли флажок быть в промежуточном состоянии: если значение AllowGrayed равно false, то флажок может быть только установленным или сброшенным; если значение AllowGrayed равно true, то допустимо промежуточное состояние

Font

Шрифт, используемый для отображения поясняющего текста



1.2.7 Свойства компонента Button

Компонент Button представляет собой кнопку, при нажатии которой будет происходить какое – либо событие.



Таблица 1.5 – Свойства Button

Свойство

Описание

Name

Имя компонента. Используется в программе для доступа к компоненту и его свойствам

Caption

Текст на кнопке

Left

Расстояние от левой границы кнопки до левой границы формы

Top

Расстояние от верхней границы кнопки до верхней границы формы

Height

Высота кнопки

Width

Ширина кнопки

Enabled

Признак доступности кнопки. Если значение свойства равно true, то кнопка доступна. Если значение свойства равно false, то кнопка недоступна например, в результате щелчка на кнопке, событие Click не возникает

Visible

Позволяет скрыть кнопку (false) или сделать ее видимой (true)

Height

Высота кнопки

Width

Ширина кнопки



1.2.8 Свойства компонента TTabSheet



TTabSheetКомпонент TTabSheet представляет собой кнопку, при нажатии которой будет происходить какое – либо событие.



Таблица 1.5 - Свойства TTabSheet

Свойство

Описание

Name

Имя, по которому можно ссылаться на страницу

Caption

Надпись, которая появляется на ярлычке закладки

PageIndex

Индекс страницы, по которому можно ссылаться на страницу

ImageIndex

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

Style

Определяет стиль отображения компонента

Images

Ссылка на компонент ImageList

ScrollOpposite

Определят способ перемещения закладок при размещении их в несколько рядов

ActivePage

Имя активной страницы

PageCount

Количество страниц. Свойство только для чтения

1.3 Постановка задачи



1.3.1 Название и назначение разрабатываемого приложения

Я назвал своё приложение “Автоматизированное рабочее место для продавца компакт дисков”.

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




1.3.2 Спецификация входных и выходных данных

Входной информацией для данной программы являются:

Наименование диска;

Группа, к которой относятся диски;

Количество;

Закупочная цена;

Цена продажи;

Выходной информацией для данной программы является

Сортировка данных по убыванию и возрастанию;

Добавление данных о дисках вновь поступающих в базу;

Фильтрация данных по некоторым полям;

Поиск и возврат дисков;

Визуализация приложения в удобной форме



1.3.3 Обоснование выбора средства программирования

Я выбрал RAD – систему Borland C++ Builder 6.0, потому что она изучена в течение семестра, а также является удобным и мощным средством для разработки как простых консольных приложений, так и обширных комплексных приложений с графическим интерфейсом.



1.3.4 Требования к аппаратной части и ПО



Персональный компьютер фирмы IBM серии PC (или совместимый с этими моделями), работающий под управлением операционной системы (ОС) Windows 98/XP/Vista, оперативная память объемом не менее 32 Мбайт, процессор с тактовой частотой не менее 133 MHz, клавиатура, мышь.






2. Технология разработки приложения



2.1 Макет приложения



2.1.1 Описание экранных форм



	При запуске программы появляется форма 1







TabSheet4

TabSheet3

TabSheet2

TabSheet1





	Рисунок 2.1







	

	

	

	

	

	

	

	

	

	

DBGrid1

Button2



ComboBox2

RadioButton2

	

RadioButton1








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







При нажатии на TabSheet3 появится следующая вкладка, в которой можно 










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







При нажатии кнопки “О программе” появляется форма, в которой содержится информация о программе.







2.1.2 Описание файлов проекта

Важно отметить, что программа состоит из следующих файлов:

		файл проекта (файл с расширением . cbproj);

		файл описания класса формы (файл с расширением .h);

		файл исходного текста (файл с расширением .cpp);

		файл с описанием окон формы (файл с расширением .dfm);

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

Файл исходного текста – программный модуль, предназначенный для размещения текстов программ на языке С++.

Проект содержит следующие файлы Project1. cbproj – файл проекта, 2 модуля Unit1.cpp, Unit2.cpp и соответствующие им 2 формы.



2.2 Описание программы



Программа состоит из 2-х модулей:



Unit1

void __fastcall TForm1::N1Click(TObject *Sender)// Открытия формы2 показ информации о программе

void __fastcall TForm1::Button1Click(TObject *Sender)// Добавление информации о дисках в БД.

void __fastcall TForm1::TabSheet1Show(TObject *Sender)// Отображение данных БД в DBGrid1.

void __fastcall TForm1::Button2Click(TObject *Sender)// Сортировка данных по убыванию или возрастанию.

void __fastcall TForm1::Button3Click(TObject *Sender)// Фильтрация данных по значениям полей базы данных.

void __fastcall TForm1::Button4Click(TObject *Sender)// Поиск данных в таблице по наименованию для удаления из БД.

void __fastcall TForm1::Button5Click(TObject *Sender)// Удаление записи из БД.

Unit2

void __fastcall TAboutBox::OKButtonClick(TObject Sender)//закрытие формы №2



2.3 Результаты работы программы



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






3. Руководство пользователя



Установка приложения производится посредством копирования всех файлов в любой каталог.

Внимание: Обязательно присутствие в одном и том же каталоге всех файлов!

Работа программы начинается с окна запуска программы Project1.exe

После запуска программы появляется следующая форма







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

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






Заключение



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

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

Так же в процессе выполнения работы были получены и закреплены практические навыки разработки программ с использованием SQL запросов и баз данных в написании программ в среде визуального программирования Borland C++ Builder 6.0.






Список использованных источников



Бобровский С. Самоучитель програмирования на языке C++ в среде Borland C++ Builder 

Культин Н.Б. С++ Buider в задачах и примерах – СПб.:БХВ-Петербург, 2007. – 336с.: ил.

Лаптев В.В. C++. Экспресс-курс . 2004г.

Послед Б.С. Borland C++ Builder 6. Разработка приложений баз. 2003г. -360ст.

Технология разработки приложения на языке С++. Методическое указание к лабораторным работам для студентов первого курса специальности 080801.65 “Прикладная информатика” (по областям)

Учебник по программированию в среде С++ Builder 5, Д. Холингворт, Б. Сворт, Д. Баттерфилд 865 с.

Б., Эллисон Ч. Философия С++. Практическое программирование. С.Петербург 2004г. 608 с.:ил.






Приложение



Листинг файла – проекта Project1.cpp



//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "ABOUT.h"

#include "Unit1.h"

#include "Unit2.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{ADOConnection1->Connected = false;

ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source="+ExtractFileDir(Application->ExeName)+" \\ БАЗА ДАННЫХ \\ CD.mdb; Mode=Share Deny None;Extended Properties=\"\";Jet OLEDB:System database=\"\";Jet OLEDB:Registry Path=\"\";Jet OLEDB:Database Password=\"\";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password=\"\";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False";

ADOConnection1->Connected = true;

PageControl1->ActivePage = TabSheet1;}

//---------------------------------------------------------------------------

void __fastcall TForm1::N1Click(TObject *Sender)

{AboutBox->Show();}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{DataSource1->DataSet = ADOQuery1;

ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add("SELECT [Наименование] FROM Tab1 WHERE [Наименование] =\""+Edit1->Text+"\";");

ADOQuery1->ExecSQL();

ADOQuery1->Open();

if(Edit1->Text!=""&&ComboBox1->Text!=" "&&Edit2->Text!=" "&Edit3->Text!=""&&Edit4->Text!="")

{if(ADOQuery1->RecordCount==0)

{ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add("INSERT INTO Tab1 ([Наименование],[Группа],[Количество],[Закупочная цена],[Цена продажи])");

ADOQuery1->SQL->Add("Values("+QuotedStr(Edit1->Text)+","+QuotedStr(ComboBox1->Text)+","+Edit2->Text+","+Edit3->Text+","+Edit4->Text+");");

ADOQuery1->ExecSQL();}else

{MessageDlg("Такие диски уже есть!"mtInformation,TMsgDlgButtons()<<mbOK,0);}

else

{MessageDlg("Введены не все данные для добавления диска(-ов) в базу!"mtInformation,TMsgDlgButtons()<<mbOK,0);}

Edit1->Clear();

ComboBox1->Clear();

Edit2->Clear();

Edit3->Clear();

Edit4->Clear();}

//---------------------------------------------------------------------------

void __fastcall TForm1::TabSheet1Show(TObject *Sender)

{DataSource1->DataSet = ADOQuery1;

ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add("SELECT * FROM Tab1;");

ADOQuery1->ExecSQL();

ADOQuery1->Open();}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{ADOQuery1->SQL->Clear();

if(RadioButton1->Checked)

{ADOQuery1->SQL->Add("SELECT * FROM Tab1 ORDER BY +["+ComboBox2->Text+"] DESC;");

ADOQuery1->ExecSQL();

DataSource1->DataSet = ADOQuery1;

ADOQuery1->Open();}

else

{if(RadioButton2->Checked)

{ADOQuery1->SQL->Add("SELECT * FROM Tab1 ORDER BY +["+ComboBox2->Text+"] ASC;");

ADOQuery1->ExecSQL();

DataSource1->DataSet = ADOQuery1;

ADOQuery1->Open();}}}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{if(RadioButton3->Checked)

{ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add("SELECT * FROM Tab1 WHERE [Наименование] "+ComboBox3->Text+"\""+Edit5->Text+"\";");

ADOQuery1->ExecSQL();

ADOQuery1->Open();

ComboBox3->Clear();

Edit5->Clear();}

else

{if(RadioButton4->Checked)

{ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add("SELECT * FROM Tab1 WHERE [Группа] "+ComboBox4->Text+"\""+ComboBox8->Text+"\";");

ADOQuery1->ExecSQL();

ADOQuery1->Open();

ComboBox4->Clear();

ComboBox8->Clear();}

else

{if(RadioButton5->Checked)

{ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add("SELECT * FROM Tab1 WHERE [Количество] "+ComboBox5->Text+" "+Edit7->Text+";");

ADOQuery1->ExecSQL();

ADOQuery1->Open();

ComboBox5->Clear();

Edit7->Clear();}

else

{if(RadioButton6->Checked)

{ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add("SELECT * FROM Tab1 WHERE [Закупочная цена] "+ComboBox6->Text+" "+Edit8->Text+";");

ADOQuery1->ExecSQL();

ADOQuery1->Open();

ComboBox6->Clear();

Edit8->Clear();}

else

{if(RadioButton7->Checked)

{ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add("SELECT * FROM Tab1 WHERE [Цена продажи] "+ComboBox7->Text+" "+Edit9->Text+";");

ADOQuery1->ExecSQL();

ADOQuery1->Open();

ComboBox7->Clear();

Edit9->Clear();}

else

{MessageDlg("Укажите хотя бы одно поле..."mtInformation,TMsgDlgButtons()<<mbOK,0);}}}}}}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)

{if(Edit10->Text!="")

{//MessageDlg("Укажите не достаюшие поля..."mtInformation,TMsgDlgButtons()<<mbOK,0);}

ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add("SELECT * FROM Tab1 WHERE [Наименование] =\""+Edit10->Text+"\";");

ADOQuery1->ExecSQL();

ADOQuery1->Open();

Edit10->Clear();} else

{MessageDlg("Укажите не достаюшие поля..."mtInformation,TMsgDlgButtons()<<mbOK,0);}}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button5Click(TObject *Sender)

{ADOQuery1->Delete();}

//---------------------------------------------------------------------------