Этапы создания БД в Delphi используя СУБД Access

Автор работы: Пользователь скрыл имя, 27 Декабря 2013 в 11:46, курсовая работа

Краткое описание

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

Содержание

I. Введение 4
II. Этапы создания БД в Delphi используя СУБД Access. 5
Создание таблиц. 5
Создание приложения. 8
Создание меню 11
Создание формы 14
Сортировка 17
Поиск записей при помощи языка SQL 18
Метод Locate 21
Фильтрация 23
Отчеты 24
Вычисляемые поля 26
III. Этапы создания БД в Delphi используя Paradox 28
Работа с Database Desktop 28
Понятие псевдонима. 30
Создание приложения 31
Создание связи 32
Создание формы для добавления нового товара 34
Обработка записи 37
Создание БД 40
Справочник 41
Создание формы 41
Вычисляемое поле. 43
Поиск данных 44
Увеличение оклада 45
Другие методы поиска 45
Отчет связанных таблиц 47
Фильтрация 47
Сортировка 47
IV. Список литературы 48

Вложенные файлы: 1 файл

Этапы создания БД в Delphi используя СУБД Access.doc

— 1.06 Мб (Скачать файл)

 

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

Запустите программу  и проверьте результат.

 

Ну вот и готова наша база данных.

 

III. Этапы создания БД в Delphi  используя Paradox

Работа с Database Desktop

Для хранения карточек товара, в которой отмечается движение (приход и расход) каждого товара. Структура таблиц показана в таблице 1 и 2. в название полей включены префиксы S и C (по первым буквам названий таблиц). Такое обозначение помогает при установлении связи между таблицами – из названия поля сразу видно, к какой таблице оно принадлежит.

 

Таблица 1. Структура таблицы Store.

Имя поля

Тип

Размер

Ключевое поле

Примечание

S_Code

+

 

*

Уникальный код товара. Используется для связи с подчиненной  таблицей

S_Name

A

20

 

Название товара. Требует обязательного заполнения

S_Unit

A

7

 

Единица измерения. Требует  обязательного заполнения.

S_Price

$

   

Цена единицы товара. Требует обязательного заполнения

S_Kol

N

   

Количество товара на складе

S_Note

A

30

 

Примечание


 

Таблица 2. Структура таблицы Cards.

Имя поля

Тип

Размер

Ключевое поле

Примечание

C_Number

+

 

*

Уникальный код записи о движении товара

C_Code

I

   

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

C_Move

N

   

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

C_Date

D

   

Дата прихода или  расхода.


Для создания таблиц используется инструмент DatabaseDesktop, входящий в пакет Делфи. Чтобы его запустить нужно дать команду Пуск/Программы/Borland Delphi 6/Database Desktop. Перед вами появиться окно вида (см рис 1.).

 

рис 1. Редактор создания таблиц.

Теперь нужно дать команду File/New/Table и перед вами откроется окно вида (см рис 2.)

 

рис 2. Окно задания типа таблиц.

 

Так как у нас таблицы  будут в формате Paradox, то оставляем это окно без изменения. Т.е. нажмите кнопку ОК. перед вами откроется окно создания структуры таблиц. Заполните его в соответствии с рис 3.

 

рис 3. Окно структуры  таблицы Store.

 

Чтобы выбрать тип  поля достаточно нажать мышкой в поле Type или клавишу пробела и выбрать нужный тип. Чтобы задать ключевое поле нужно  в поле Key щелкнуть кнопкой мыши или нажать любую клавишу. После создания полей нужно сохранить таблицу. Для этого дайте команду Save As… .теперь в открывшемся окне создайте папку на диске С: с названием Склад. И сохраните в ней вашу таблицу под название Store. Точно таким же образом создайте вторую таблицу и сохраните под названием Cards в вашей папке. Теперь сверните окно Database Desktop и запустите Делфи.

Понятие псевдонима.

Псевдоним это уникальное имя которое однозначно определяет путь к БД. Для создания псевдонима необходимо запустить BDE Administrator. Для этого дайте команду Пуск/программы/Borland Delphi 6/BDE Administrator. В результате чего откроется окно вида:

 

 

далее дайте команду Object/New в появившемся окне оставить все без изменения и нажать ОК. В результате чего в левой части появиться пункт STANDARD1, измените его на ваше усмотрение. Затем в правой части нужно указать путь размещения вашей БД. Для этого найдите строку Path и справа от него щелкните по кнопке с тремя точками и выберите вашу базу. После чего щелкните правой кнопкой мыши по вашему псевдониму и дайте команду Apply и нажмите ОК. все мы создали с вами псевдоним.

 

 

Создание приложения

При работе с таблицами Paradox мы будем использовать набор данных Table с вкладки BDE, источник связи Data Source с вкладки Data Access и компонент отображения таблиц DBGrid с вкладки Data Controls. Разместите их на форме. Теперь выделите компонент Table1 и в свойстве name напишите Tovar. Теперь найдите свойство DatabaseName и выберите созданный нами псевдоним. Теперь в свойстве TableName выберите нашу таблицу Store и в свойстве Active установите значение True. Теперь выделите источник связи DataSource и переименуйте его в TovarSource (свойство Name). Теперь в свойстве DataSet  выберите единственное значение Tovar. Этим самым мы связали источник данных с источником связи. Теперь свяжем источник связи с компонентом отображения данных. Для этого выделите DBGrid1 и в свойстве DataSource выберите пункт TovarSource. Если вы все сделали правильно то  у вас должно получиться следующее (см рис 4).

 

рис 4. Окно формы после  соединения компонентов.

 

Таким же образом подсоедините вторую таблицу. Для этого разместите на форме компоненты Table, DataSource, DBGrid. Компонент Table переименуйте в Prihod, DataSource в PrihodSource. Если вы все сделали правильно, то у вас должно получиться следующее (см рис 5).

 

рис 5. Окно формы после  подсоединения второй таблицы.

Создание связи

Теперь  запустите программу  и попробуйте заполнить две таблицы. Сначала одну , а затем вторую.  Вы видите что если перемещаться по записям главной таблицы во второй таблице никаких изменений не происходит. Суть связи в том, что если вы перемещаетесь в главной таблице во второй таблице должны отображаться данные именно того товара на котором стоит указатель. Давайте свяжем наши таблицы. Для этого выделите по отдельности компоненты Tovar и Prihod,  найдите свойство Active и установите там значение False. Затем зайдите в меню Tools/Database Desktop. Дайте команду File/Open/Table. Найдите свою папку и откройте вашу таблицу Store. После открытия дайте команду Table/Restructure. В открывшемся окне в списке  Table Properties найдите пункт Secondary Indexes и нажмите кнопку Define (рис 6):


 

рис 6. Окно структуры.

 

Перед вами откроется  окно вида (см рис 7.) сделайте так как  показано на рисунке. Нажмите ОК и дайте название вашему индексу Ind. Сохраните и закройте окно. 

 

рис 7. Окно задания индексов.

 

Теперь вернитесь в  Дельфи и у компонентов Tovar и Prihod в свойстве Active установите значение True. Теперь выделите  набор данных Prihod, найдите свойство MasterSource, выберите единственный пункт TovarSource. Теперь в свойстве MasterFields щелкните два раза. Перед вами откроется окно вида (см рис 8.)

 

рис 8. Дизайнер связи.

 

Теперь в списке Доступные индексы     выберите ваш созданный индекс Ind. В левом поле появился ваш индекс C_Code. Выделите его, затем справа выделите поле S_Code нажмите кнопку Добавить. Все связь установлена. Нажмите кнопку ОК и запустите программу. Как видите связь работает.


Создание формы для добавления нового товара

Теперь добавьте на форму  три кнопки Button и компонент Checkbox. Расположите их и назовите так как показано на рис 9.

о

рис 9. Расположение кнопок.

 

По нажатию кнопки Добавить будет появляться новая  форма, где будет вводиться товар. Для этого добавьте новую форму, разместите на ней 4 компонента Label, 4 – DBEdit, 2-Button. Саму форму назовите fmInput (св-во Name). Вид формы приведен на рис 10.

 

рис 10. Вид формы с  размещенными на ней компонентами.

 

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

 

 

tovarsource.AutoEdit:=false;

prihodsource.AutoEdit:=false;

prihod.MasterSource:=tovarsource;

checkbox1.Checked:=false;

 

Теперь напишем обработчик кнопки Добавить главной формы:

 

tovar.Append;

if fminput.ShowModal=mrOk

then begin

    tovar.FieldByName('S_Kol').AsFloat:=0;

    tovar.Post;

    end

    else tovar.Cancel;

 

Теперь напишем обработчик кнопки Удалить главной формы:

 

if  tovar.RecordCount=0 then exit;

if  messagedlg('Удалить запись ? ',mtconfirmation,[mbOK,mbNO],0)=mrOK

then  begin

    prihod.Last;

    for n:=1 to prihod.RecordCount do prihod.Delete;

    tovar.Delete;

    end;

 

Теперь перейдите на вторую форму и напишем обработчик для формы (Form Create):

 

dbedit1.DataSource:=form1.tovarsource;

dbedit1.DataField:='S_Name';

dbedit2.DataSource:=form1.tovarsource;

dbedit2.DataField:='S_Unit';

dbedit3.DataSource:=form1.TovarSource;

dbedit3.DataField:='S_Price';

dbedit4.DataSource:=form1.TovarSource;

dbedit4.datafield:='S_Note';

Button1.ModalResult:=mrOK;

Button2.ModalResult:=mrCancel;

 

 

Теперь мы можем свободно добавлять записи и удалять.

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

А теперь все это продемонстрируем в нашей программе.

 

Напишем обработчик кнопки Приход-Расход

 

if inputquery('Поступление  товара ' + tovar.fieldbyname('S_Name').asstring , 'Приход- расход ', smove)

 then begin

try

nmove:=strtofloat(smove);

except

beep;

messagedlg('Неправильно введен приход-расход: '+smove, mterror,[mbOK],0);

exit;

end;

prihod.Append;

prihod.FieldByName('C_Move').AsFloat:=nmove;

prihod.FieldByName('C_Date').AsDateTime:=now;

prihod.Post;

tovar.Edit;

tovar.FieldByName('S_Kol').AsFloat:=

tovar.FieldByName('S_Kol').AsFloat+nmove;

 tovar.Post;

 

end;

 

Запустите программу  и проверьте ее в работе.

 

Теперь напишем обработчик компонента Все записи

 

if not checkbox1.Checked then begin

prihod.IndexName:='ind';

prihod.IndexFieldNames:='C_Code';

prihod.MasterFields:='S_Code';

bitbtn2.Enabled:=true;

                                                  end

else begin

prihod.IndexName:='';

prihod.IndexFieldNames:='';

prihod.MasterFields:='';

bitbtn2.Enabled:=false;

     end;

 

 

Наше приложение готово. Теперь мы можем свободно добавлять и удалять записи.

Обработка записи

Рассмотрим теперь пример того как можно перемещаться по записям.

 

Создайте в DatabaseDesktop таблицу со следующими полями:

P_Code

P_Name

P_Position

P_Salary

P_Note

 

Создайте в делфи  приложение и разместите на форме  компоненты следующим образом (см рис 12):

рис 12. Форма после  размещения компонентов.

Суть примера в том  что перебираются записи набора данных Table начиная с первой и подсчитывается сумма значений, содержащихся в поле P_Salary . для запуска и остановки процесса расчета используются кнопки Start и Break с заголовками Начать и Прервать. Поле индикатора Progressbar1 служит для показа хода работы, а процент перебранных записей отображается в надписи label2. теперь дважды щелкнем по форме и в открывшемся окне кода напишем следующее, но перед этим объявим в разделе Var переменную:

var

  Form1: TForm1;

  workbreak:boolean;

implementation

 

а в коде формы напишем:

 

start.Enabled:=true;

break.Enabled:=false;

workbreak:=false;

 

А теперь напишем обработчик кнопки Начать.

 

start.Enabled:=fasle;

break.Enabled:=true;

Информация о работе Этапы создания БД в Delphi используя СУБД Access