Разработка базы данных "Внутренняя организация театра"

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 16.02.2015
Размер файла 2,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

БРАТСКИЙ ЦЕЛЛЮЛОЗНО-БУМАЖНЫЙ КОЛЛЕДЖ

ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО БЮДЖЕТНОГО

ОБРАЗОВАТЕЛЬНОГО УЧЕРЕЖДЕНИЯ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «БРАТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Энергетический факультет

Кафедра ИСПиА

КУРСОВОЙ ПРОЕКТ

ПМ 02 «Разработка и администрирование баз данных»

МДК 02.02 «Технология разработки и защиты баз данных»

Разработка базы данных «Внутренняя организация театра»

Студент ПКС-111

А.А.Князева

Руководитель

О.А.Селезнева

Братск 2014

Содержание

Введение

1. Организационный раздел

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

1.2 Выбор программных и аппаратных средств для создания базы данных

2. Специальный раздел

2.1 Описание разработки базы данных

2.2 Защита информации в базе данных

Заключение

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

Приложение А

база данные программа

Введение

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

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

Целью данного курсового проекта по ПМ.02 “Разработка и администрирование баз данных”, по МДК 02.02 “Технология разработки и защиты баз данных” является создание базы данных “ Внутренняя организация театра ”. Для разработки базы данных (БД) использованы программы Microsoft Access и Borland Delphi 7.

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

1. Организационный раздел

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

Полное наименование программной разработки: БД «Внутренняя организация театра».

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

Работа ведется на основании задания на курсовое проектирование по дисциплине «Технология разработки и защиты баз данных».

Задание утверждено зав. кафедрой ИСПиА и выдано преподавателем кафедры Селезнева О.А.

База данных «Внутренняя организация театра» позволяет вести:

учет спектаклей;

учет работников;

учет продаж билетов;

учет работ и направлений работников.

1.2 Выбор программных и аппаратных средств для создания базы данных

Для разработки программного продукта «Внутренняя организация театра» использовался язык программирования «Delphi 2007».

Delphi (Демлфи, произносится -- императивный, структурированный, объектно-ориентированный язык программирования, диалект Object Pascal). Начиная со среды разработки Delphi 7.0, в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal. Начиная с 2007 года уже язык Delphi (производный от Object Pascal) начал

жить своей самостоятельной жизнью и претерпевал различные изменения, связанные с современными тенденциями (например, с развитием платформы .NET) развития языков программирования: появились class helpers, перегрузки операторов и другое. Процесс разработки в Delphi предельно упрощен. В первую очередь это относится к созданию интерфейса, на который уходит 80% времени разработки программы. Простое помещение нужных компонентов на поверхность Windows-окна (в Delphi оно называется формой) и настройка их свойств с помощью специального инструмента (Object Inspector), увеличивает скорость разработки программных продуктов. С помощью Object Inspector, можно связать события компонентов (нажав на кнопку, выбор мышью элемента в списке и т.д.) с кодом его обработки.

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

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

Условия эксплуатации программного комплекса должны соответствовать условиям работоспособности оборудования, используемого для работы с программным комплексом.

Аппаратное обеспечение современных ПК включает в себя следующее:

системный блок,

устройства ввода информации в ПК (например, клавиатура, мышь),

устройства вывода информации из ПК (например, монитор).

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

Операционная система

Windows 7/XP/Vista (256 Бит) и выше

Память

Системная память 1 ГБ (DDR3)

Графика

выделенная память 512 ГБ DDR3

Устройства хранения данных

Жесткий диск 500 ГБ (5400 об./мин. S-ATA)

Минимальные требования к программным средствам:

Процессор не ниже Pentium-II

Оперативная память не менее 1Гб

Свободная память на жестком диске не менее 500 Мб

Устройство считывания с компакт-диска

Манипулятор «Мышь»

Операционная система Windows 7/XP/Vista

2. Специальный раздел

Рисунок 1 - «Структурная схема»

2.1 Описание разработки базы данных

Проект базы данных состоит из 16 таблиц которые связанны между собой.

Рисунок 2 - «Схема данных»

Рисунок 3 - Таблица «Авторы»

Рисунок 4 - Таблица «Актеры»

Рисунок 5 - Таблица «Архив спектаклей»

Рисунок 6 - Таблица «Билеты»

Рисунок 7 - Таблица «Голос»

Рисунок 8 - Таблица «Дирижеры»

Рисунок 9 - Таблица «Достижения»

Рисунок 10 - Таблица «Дублеры»

Рисунок 11 - Таблица «Место в оркестре»

Рисунок 12 - Таблица «Музыканты»

Рисунок 13 - Таблица «Оркестры»

Рисунок 14 - Таблица «Расписание»

Рисунок 15 - Таблица «Режиссеры»

Рисунок 16 - Таблица «Роли»

Рисунок 17 - Таблица «Спектакли»

Рисунок 18 - Таблица «Художники»

Проект программы состоит из 2 форм:

Form1;

Form2;

В первой форме (Form1 - рисунок 19) отображены компоненты главное меню, группа компонентов «поиск по», группа компонентов «фильтр по» и таблица с данными, вместе с ними на форме расположены подключаемые компоненты для работы с данными. (Код программы предоставлен в Приложении А.)

Рисунок 19 - Форма Form1

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

Рисунок 20 - Форма Form1 (Навигация).

Поиск по таблице осуществляется в группе компонентов «Поиск по Билетам» в нем задаем, нужные критерии поиска после нажимаем, кнопку поиск, нужная строка будет выделена стрелкой слева. (Код программы предоставлен в Приложении А.)

Рисунок 21 - Форма Form1 (Поиск).

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

Рисунок 22 - Форма Form1 (Фильтрация).

Перемещение между таблицами осуществляется через вкладку «Таблицы» в главном меню. (Код программы предоставлен в Приложении А.)

Рисунок 23 - Форма Form1 (Перемещение).

Во второй форме (Form2 - рисунок 24) находится описание формы «О программе», она доступна в пункте «Справка» в главном меню. Выход из этой формы осуществляется кнопкой «ОК». (Код программы предоставлен в Приложении А.)

Рисунок 24 - Форма Form2

Выход из программы осуществляется через вкладку «Файл» в главном меню. (Код предоставлен в Приложении А.)

Рисунок 25 - Форма Form1 (Выход).

Подключение к базе данных выполняется с помощью компонента ADOConnectio

n, используя технологию Microsoft.Jet.OLEDB.4.0.

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

ADOQuery1 отвечает за считывание, обновление, удаление данных из таблицы «Авторы».

ADOQuery2 отвечает за считывание, обновление, удаление данных из таблицы «Актёры».

ADOQuery3 отвечает за считывание, обновление, удаление данных из таблицы «Архив спектаклей».

ADOQuery4 отвечает за считывание, обновление, удаление данных из таблицы «Билеты».

ADOQuery5 отвечает за считывание, обновление, удаление данных из таблицы «Голос».

ADOQuery6 отвечает за считывание, обновление, удаление данных из таблицы «Дирижеры».

ADOQuery7 отвечает за считывание, обновление, удаление данных из таблицы «Достижения».

ADOQuery8 отвечает за считывание, обновление, удаление данных из таблицы «Дублеры».

ADOQuery9 отвечает за считывание, обновление, удаление данных из таблицы «Место в оркестре».

ADOQuery10 отвечает за считывание, обновление, удаление данных из таблицы «Музыканты».

ADOQuery11 отвечает за считывание, обновление, удаление данных из таблицы «Оркестры».

ADOQuery12 отвечает за считывание, обновление, удаление данных из таблицы «Расписание».

ADOQuery13 отвечает за считывание, обновление, удаление данных из таблицы «Режиссеры».

ADOQuery14 отвечает за считывание, обновление, удаление данных из таблицы «Роли».

ADOQuery15 отвечает за считывание, обновление, удаление данных из таблицы «Спектакли».

ADOQuery16 отвечает за считывание, обновление, удаление данных из таблицы «Художники».

2.2 Защита информации в базе данных

Защита информации в базах данных, в отличие от защиты данных в файлах, имеет и свои особенности:

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

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

При создании средств защиты информации в базах данных необходимо учитывать взаимодействие этих средств не только с ОС, но и с СУБД.

При этом возможно встраивание механизмов защиты в СУБД или использование их в виде отдельных компонент. Для большинства СУБД придание им дополнительных функций возможно только на этапе разработки СУБД. В эксплуатируемые системы управления базами данных дополнительные компоненты могут быть внесены путем расширения или модификации языка управления. Таким путем можно осуществлять наращивание возможностей, например, в СУБД СА-Сliрреr 5.0.

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

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

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

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

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

Второй режим предполагает возможность выполнения СУБД запросов пользователей без расшифрования информации на ВЗУ. Поиск необходимых файлов, записей, полей, групп полей не требует расшифрования. Расшифрование производится в ОП непосредственно перед выполнением конкретных действий с данными. Такой режим возможен, если процедуры шифрования встроены в СУБД. При этом достигается высокий уровень защиты от несанкционированного доступа, но реализация режима связана с усложнением СУБД. Придание СУБД возможности поддержки такого режима работы осуществляется, как правило, на этапе разработки СУБД.

Заключение

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

В проделанной работе были опробованы и использованы методы управления и создания приложения в Delphi и систем базы данных Microsoft Access. Также изучены основные компоненты Delphi для работы с базой данных (БД).

Компонент ADOConnection обеспечивает соединение с источниками данных. Компоненты ADODataSet и ADOQuery обеспечивают использование наборов записей приложения.

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

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

1. Иллюстрированный самоучитель по Access 2002: электронный учебник, 2006.;

2. Пестриков А. Delphi на примерах Год издания: 2007;

3. 4. Архангельский А. Я Оригинальное название: Программирование в Delphi 7;

5. Сорокин А. Delphi.Разработка данных Год издания: 2009;

6. Парижский С. Delphi .Учимся на примерах ;

7. Кандзюба С. Delphi 6/7 базы данных и приложения ;

8. Библия Delphi Автор: Михаил Фленов. Оригинальное название: Год издания: 2011

http://delphicomponent.ru/279-ustanovka-komponentov-v-sredu-delphi-7.html

http://www.cyberforum.ru/delphi-beginners/thread41809.html

http://www.cyberforum.ru/delphi-database/thread1179910.html

http://delphi-help.ru/index.php?option=com_k2&view=item&id=1342:rabota-s-ado-v-delphi

http://devdelphi.ru/?p=16

http://razvlechsebya.ru/raznoe/kak-sozdat-prilozhenie-bazy-dannyx-access-v-delphi-7-urok-1-sozdanie-bazy-dannyx-i-otobrazhenie-dannyx.html

http://www.cyberforum.ru/delphi-beginners/thread1300549.html

http://www.cyberforum.ru/delphi-database/thread1299688.html

http://www.cyberforum.ru/delphi-database/thread1300601.html

http://www.cyberforum.ru/delphi-database/thread1301888.html

http://www.cyberforum.ru/delphi-beginners/thread1172103.html

http://www.cyberforum.ru/delphi-beginners/thread1179769.html

Приложение А

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, ExtCtrls, DBCtrls, Grids, DBGrids, DB, ADODB, StdCtrls,

Buttons;

type

TForm1 = class(TForm)

DBNavigator1: TDBNavigator;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

N12: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

N16: TMenuItem;

N17: TMenuItem;

N18: TMenuItem;

N19: TMenuItem;

N20: TMenuItem;

N21: TMenuItem;

ADOConnection1: TADOConnection;

ADOQuery1: TADOQuery;

ADOQuery2: TADOQuery;

ADOQuery3: TADOQuery;

ADOQuery4: TADOQuery;

ADOQuery5: TADOQuery;

ADOQuery6: TADOQuery;

ADOQuery7: TADOQuery;

ADOQuery8: TADOQuery;

ADOQuery9: TADOQuery;

ADOQuery10: TADOQuery;

ADOQuery11: TADOQuery;

ADOQuery12: TADOQuery;

ADOQuery13: TADOQuery;

ADOQuery14: TADOQuery;

ADOQuery15: TADOQuery;

ADOQuery16: TADOQuery;

DataSource1: TDataSource;

DataSource2: TDataSource;

DataSource3: TDataSource;

DataSource4: TDataSource;

DataSource5: TDataSource;

DataSource6: TDataSource;

DataSource7: TDataSource;

DataSource8: TDataSource;

DataSource9: TDataSource;

DataSource10: TDataSource;

DataSource11: TDataSource;

DataSource12: TDataSource;

DataSource13: TDataSource;

DataSource14: TDataSource;

DataSource15: TDataSource;

DataSource16: TDataSource;

DBGrid1: TDBGrid;

GroupBox1: TGroupBox;

CheckBox1: TCheckBox;

CheckBox2: TCheckBox;

Edit1: TEdit;

Edit2: TEdit;

BitBtn1: TBitBtn;

GroupBox2: TGroupBox;

Button1: TButton;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

procedure N6Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure N12Click(Sender: TObject);

procedure N13Click(Sender: TObject);

procedure N14Click(Sender: TObject);

procedure N15Click(Sender: TObject);

procedure N16Click(Sender: TObject);

procedure N17Click(Sender: TObject);

procedure N18Click(Sender: TObject);

procedure N19Click(Sender: TObject);

procedure N20Click(Sender: TObject);

procedure N21Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit3;

{$R *.dfm}

procedure TForm1.N6Click(Sender: TObject);

begin

ADOQuery1.Active:=false;

DataSource1.DataSet:=ADOQuery1;

DBgrid1.DataSource:=DataSource1;

ADOQuery1.Active:=true;

DBNavigator1.DataSource:=DataSource1;

end;

procedure TForm1.N7Click(Sender: TObject);

begin

ADOQuery2.Active:=false;

DataSource2.DataSet:=ADOQuery2;

DBgrid1.DataSource:=DataSource2;

ADOQuery2.Active:=true;

DBNavigator1.DataSource:=DataSource2;

end;

procedure TForm1.N8Click(Sender: TObject);

begin

ADOQuery3.Active:=false;

DataSource3.DataSet:=ADOQuery3;

DBgrid1.DataSource:=DataSource3;

ADOQuery3.Active:=true;

DBNavigator1.DataSource:=DataSource3;

end;

procedure TForm1.N9Click(Sender: TObject);

begin

ADOQuery4.Active:=false;

DataSource4.DataSet:=ADOQuery4;

DBgrid1.DataSource:=DataSource4;

ADOQuery4.Active:=true;

DBNavigator1.DataSource:=DataSource4;

end;

procedure TForm1.N10Click(Sender: TObject);

begin

ADOQuery5.Active:=false;

DataSource5.DataSet:=ADOQuery5;

DBgrid1.DataSource:=DataSource5;

ADOQuery5.Active:=true;

DBNavigator1.DataSource:=DataSource5;

end;

procedure TForm1.N11Click(Sender: TObject);

begin

ADOQuery6.Active:=false;

DataSource6.DataSet:=ADOQuery6;

DBgrid1.DataSource:=DataSource6;

ADOQuery6.Active:=true;

DBNavigator1.DataSource:=DataSource6;

end;

procedure TForm1.N12Click(Sender: TObject);

begin

ADOQuery7.Active:=false;

DataSource7.DataSet:=ADOQuery7;

DBgrid1.DataSource:=DataSource7;

ADOQuery7.Active:=true;

DBNavigator1.DataSource:=DataSource7;

end;

procedure TForm1.N13Click(Sender: TObject);

begin

ADOQuery8.Active:=false;

DataSource8.DataSet:=ADOQuery8;

DBgrid1.DataSource:=DataSource8;

ADOQuery8.Active:=true;

DBNavigator1.DataSource:=DataSource8;

end;

procedure TForm1.N14Click(Sender: TObject);

begin

ADOQuery9.Active:=false;

DataSource9.DataSet:=ADOQuery9;

DBgrid1.DataSource:=DataSource9;

ADOQuery9.Active:=true;

DBNavigator1.DataSource:=DataSource9;

end;

procedure TForm1.N15Click(Sender: TObject);

begin

ADOQuery10.Active:=false;

DataSource10.DataSet:=ADOQuery10;

DBgrid1.DataSource:=DataSource10;

ADOQuery10.Active:=true;

DBNavigator1.DataSource:=DataSource10;

end;

procedure TForm1.N16Click(Sender: TObject);

begin

ADOQuery11.Active:=false;

DataSource11.DataSet:=ADOQuery11;

DBgrid1.DataSource:=DataSource11;

ADOQuery11.Active:=true;

DBNavigator1.DataSource:=DataSource11;

end;

procedure TForm1.N17Click(Sender: TObject);

begin

ADOQuery12.Active:=false;

DataSource12.DataSet:=ADOQuery12;

DBgrid1.DataSource:=DataSource12;

ADOQuery12.Active:=true;

DBNavigator1.DataSource:=DataSource12;

end;

procedure TForm1.N18Click(Sender: TObject);

begin

ADOQuery13.Active:=false;

DataSource13.DataSet:=ADOQuery13;

DBgrid1.DataSource:=DataSource13;

ADOQuery13.Active:=true;

DBNavigator1.DataSource:=DataSource13;

end;

procedure TForm1.N19Click(Sender: TObject);

begin

ADOQuery14.Active:=false;

DataSource14.DataSet:=ADOQuery14;

DBgrid1.DataSource:=DataSource14;

ADOQuery14.Active:=true;

DBNavigator1.DataSource:=DataSource14;

end;

procedure TForm1.N20Click(Sender: TObject);

begin

ADOQuery15.Active:=false;

DataSource15.DataSet:=ADOQuery15;

DBgrid1.DataSource:=DataSource15;

ADOQuery15.Active:=true;

DBNavigator1.DataSource:=DataSource15;

end;

procedure TForm1.N21Click(Sender: TObject);

begin

ADOQuery16.Active:=false;

DataSource16.DataSet:=ADOQuery16;

DBgrid1.DataSource:=DataSource16;

ADOQuery16.Active:=true;

DBNavigator1.DataSource:=DataSource16;

end;

procedure TForm1.N2Click(Sender: TObject);

begin

Close

end;

procedure TForm1.N5Click(Sender: TObject);

begin

Form3.showmodal;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

var keyfields:string;keyvalues:variant;options:tlocateoptions;

begin

if not(checkbox1.Checked or checkbox2.Checked) then

begin

messagedlg('не заданы условия поиска',mtinformation,[mbok],0);

exit;

end;

if checkbox1.Checked and checkbox2.Checked then

begin

keyfields:='Цена,Количество';

keyvalues:=vararrayof([edit1.Text,edit2.Text]);

end

else

begin

if checkbox1.Checked then

begin

keyfields:='Цена';

keyvalues:=edit1.Text;

end;

if checkbox2.Checked then

begin

keyfields:='Количество';

keyvalues:=edit2.Text;

end;

end;

options:=[locaseinsensitive,lopartialkey];

ADOQuery4.locate(keyfields,keyvalues,options);

if not ADOQuery4.locate(keyfields,keyvalues,options) then

begin

Beep;

messagedlg('Запись не найдена!',mtinformation,[mbok],0);

exit;

end;

end;

procedure TForm1.Button1Click(Sender: TObject);

var filtr,

add: string;

begin

ADOQuery1.filtered:=false;

filtr:='';

if length(edit3.text) > 0 then

begin

if length(filtr) > 0 then add:= ' and ' else add:='';

filtr:=filtr + add + 'Фамилия LIKE '+ #39 + Edit3.Text + '%' + #39;

end;

if length(edit4.text) > 0 then

begin

if length(filtr) > 0 then add:= ' and ' else add:='';

filtr:=filtr + add + 'Имя LIKE '+ #39 + Edit4.Text + '%' + #39;

end;

if length(edit5.text) > 0 then

begin

if length(filtr) > 0 then add:= ' and ' else add:='';

filtr:=filtr + add + 'Отчество LIKE '+ #39 + Edit5.Text + '%' + #39;

end;

if length(filtr) > 0 then

begin

ADOQuery1.Filter:= filtr;

ADOQuery1.filtered:=true;

end

else Showmessage('Все поля пусты!');

end;

end.

unit Unit3;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm3 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Button1: TButton;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);

begin

Close

end;

end.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.