Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Пояснения к выполнению работы. Для создания клиентского приложения в Delphi 7 используем пример базы данных в табличном пространстве DB_Books






 

Для создания клиентского приложения в Delphi 7 используем пример базы данных в табличном пространстве DB_Books, которая была создана в лабораторной работе №1.

При выполнении примеров и заданий обращайте внимание на соответствие названий таблиц и других объектов проекта.

В данной работе при создании клиентского приложения будем использовать встроенные инструменты для работы с данными (в Delphi 7 – вкладка Data Controls).

Если данный проект был выполнен в лабораторной работе с СУБД MS SQL Server, то в нем необходимо лишь перенастроить свойство Connection String на соединение с Oracle согласно пункту 4 и перекомпилировать проект.

 

В Delphi 7:

1. В новом проекте создадим модуль данных (меню File – New – DataModule). Переименуем форму в DM (свойство Name – DM).

2. В основной форме (например, Form1, переименовать ее в MainForm) в коде добавить описание модуля DM, для этого после ключевого слова USES в конце списка поставить запятую и дописать название программного модуля, например UNIT2, который соответствует созданной форме DM.

3. На форму DM с вкладки ADO добавить компонент ADOConnection (название, например ADOConnection1), 5 компонентов типа ADOTable (переименовать компоненты в ADOPurchases, ADOBooks, ADOAuthors, ADODeliveries, ADOPublish), с вкладки Data Access 5 компонентов типа DataSource (переименовать компоненты в DataPurchases, DataBooks, DataAuthors, DataDeliveries, DataPublish).

4. У компонента ADOConnection1 настроить свойства:

Connected String = нажать кнопку Build\ выбрать Поставщик данных – Microsoft OLE DB Provider for Oracle

Источник данных – ORCL

Пользователь – ADMIN_BOOKS

Пароль – worlds

Получится в результате – Provider=MSDAORA.1; User ID=ADMIN_BOOKS; Data Source=Orcl; Persist Security Info=False

LoginPrompt = True;

Connected = True.

5. У ADOAuthors изменить следующие свойства:

Connection на ADOConnection1;

TableName на Authors;

Active на True.

6. У DataAuthors изменить следующие свойства (это будет ссылка на таблицу):

DataSet на ADOAuthors.

7. У ADOPurchases изменить следующие свойства:

Connection на ADOConnection1;

TableName на Purchases;

Active на True.

8. У DataPurchases изменить следующие свойства (это будет ссылка на таблицу):

DataSet на ADOPurchases.

9. У ADOBooks изменить следующие свойства:

Connection на ADOConnection1;

TableName на Books;

Active на True.

10. У DataBooks изменить следующие свойства (это будет ссылка на таблицу):

DataSet на ADOBooks.

11. У ADODeliveries изменить следующие свойства:

Connection на ADOConnection1;

TableName на Deliveries;

Active на True.

12. У DataDeliveries изменить следующие свойства (это будет ссылка на таблицу):

DataSet на ADODeliveries.

13. У ADOPublish изменить следующие свойства:

Connection на ADOConnection1;

TableName на Publishing_house;

Active на True.

14. У DataPublish изменить следующие свойства (это будет ссылка на таблицу):

DataSet на ADOPublish.

15. На основной форме (MainForm) добавить компонент Меню с вкладки Standart. В редакторе меню сделать первый пункт «Работа с таблицами» и в подменю пункты: «Авторы», «Книги», «Издательства», «Поставщики», «Поставки».

16. Создать пять форм, каждую из которых назвать (изменить свойство Name): FormAuthors, FormPurchases, FormBooks, FormDeliveries, FormPublish. В главной форме, в коде добавить описание этих форм, для этого после ключевого слова USES в конце списка через запятую дописать названия программных модулей, которые соответствуют описанным формам. В каждой из созданных форм в коде добавить описание модуля DM, для этого после ключевого слова USES в конце списка поставить запятую и дописать название программного модуля, например UNIT2, который соответствует созданной форме DM.

17. На основной форме в подпунктах меню в соответствующих методах Click вызвать соответствующие формы с помощью кода:

для FormAuthors:

DM.ADOAuthors.Open;

FormAuthors: =TFormAuthors.Create(Application);

FormAuthors.Show;

для FormPurchases:

DM.ADOPurchases.Open;

FormPurchases: =TFormPurchases.Create(Application);

FormPurchases.Show;

для FormBooks:

DM.ADOBooks.Open;

FormBooks: =TFormBooks.Create(Application);

FormBooks.Show;

для FormDeliveries:

DM.ADODeliveries.Open;

FormDeliveries: =TFormDeliveries.Create(Application);

FormDeliveries.Show;

для FormPublish:

DM.ADOPublish.Open;

FormPublish: =TFormPublish.Create(Application);

FormPublish.Show;

18. На формы FormAuthors, FormPurchases, FormBooks, FormDeliveries, FormPublish добавить с вкладки Data Controls по паре компонент типа DBGrid и DBNavigator. Настроить у DBGrid и DBNavigator свойство DataSource для связи с соответствующим источником данных.

19. Проверить работу приложения.

 

20. На форму FormBooks с вкладки Data Controls добавить 3 компонента типа DBEdit, 2 компонента типа DBLookupComboBox.

У 1-го компонента DBEdit изменить свойства:

Name на DBE_Code_Book;

DataSource на DM.DataBooks;

DataField на Code_book.

У 2-го компонента DBEdit изменить свойства:

Name на DBE_Title_book;

DataSource на DM.DataBooks;

DataField на Title_book.

У 3-го компонента DBEdit изменить свойства:

Name на DBE_Pages;

DataSource на DM.DataBooks;

DataField на Pages.

У 1-го компонента DBLookupComboBox изменить свойства:

Name на DBL_Code_author;

DataSource на DM.DataBooks;

DataField на Code_author;

ListSource на DM.DataAuthors;

ListField на name_author;

KeyField на Code_author.

У 2-го компонента DBLookupComboBox изменить свойства:

Name на DBL_Code_Publish;

DataSource на DM.DataBooks;

DataField на Code_publish;

ListSource на DM.DataPublish;

ListField на Publish;

KeyField на Code_publish.

Рядом с каждым настроенным компонентом поставить Label (надпись), у которой в свойстве Caption написать, например, " Введите название книги" и т.д.

 

У компонента DBGrid настроить свойство ReadOnly в режим True.

 

Так как на форме будет использоваться компоненты DBLookupComboBox, которые ссылаются на таблицы Authors и Publishing_house, нужно на основной форме в подпункте меню " Книги" в методе Click добавить в начало две команды:

DM.ADOPublish.Open;

DM.ADOAuthors.Open;

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

21. Аналогично для остальных форм добавить элементы типа DBEdit (для полей данных которых будут просто набираться или редактироваться пользователем) и DBLookupComboBox (для полей связи, к которым подходит связь типа «много», они позволят выбирать данные из соответствующего справочника, и пользователю не придется помнить значения кодов).

22. Проверить работу приложения.

 

23. Теперь необходимо создать фильтры по текущим значениям полей таблицы. Значения для фильтра будут браться из колонок DBGrid. Например, строка formbooks.DBGrid1.Columns. Items[0]. Field.Text; будет брать текущее значение из первой колонки DBGrid. Поэтому при выполнении этого задания обращайте внимание на соответствие индексов колонки порядку полей и исправьте при необходимости индексы в соответствии с вашим порядком полей в таблице.

 

На форму FormBooks с вкладки Standart добавить 5 компонентов типа Button.

У 1-го компонента Button изменить свойства и метод:

Name на B_Publish;

Caption на Фильтр по текущему издательству;

В методе Click кнопки написать код:

dm.ADOBooks.Filter: = 'Code_Publish = '+ formbooks.DBGrid1.Columns.Items[4].Field.Text;

dm.ADOBooks.Filtered: = true;

У 2-го компонента Button изменить свойства и метод:

Name на B_Title_Book;

Caption на Фильтр по текущему названию книги.

В методе Click кнопки написать код:

dm.ADOBooks.Filter: = 'Title_book = '+ QuotedStr(formbooks.DBGrid1.Columns.Items[1].Field.Text);

dm.ADOBooks.Filtered: = true;

У 3-го компонента Button изменить свойства и метод:

Name на B_Author;

Caption на Фильтр по текущему автору.

В методе Click кнопки написать код:

dm.ADOBooks.Filter: = 'Code_Author = '+ formbooks.DBGrid1.Columns.Items[0].Field.Text;

dm.ADOBooks.Filtered: = true;

У 4-го компонента Button изменить свойства и метод:

Name на B_Pages;

Caption на Фильтр по количеству страниц в книге.

В методе Click кнопки написать код:

dm.ADOBooks.Filter: = 'Pages = '+ formbooks.DBGrid1.Columns.Items[3].Field.Text;

dm.ADOBooks.Filtered: = true;

У 5-го компонента Button изменить свойства и метод:

Name на B_Cancel;

Caption на Снять фильтр.

В методе Click кнопки написать код:

dm.ADOBooks.Filter: = '';

dm.ADOBooks.Filtered: = false;

 

Рис. 7.1. Пример расположения компонентов на форме FormBooks

 

24. Аналогично для остальных форм добавить элементы типа Button, которые будут запускать фильтры по соответствующим значениям полей текущей записи в объекте Grid.

25. Проверить работу приложения.

26. Создать форму, назвать (изменить свойство Name) FormProcedure. В главной форме в коде добавить описание этой формы, для этого после ключевого слова USES в конце списка через запятую дописать название программного модуля, которое соответствует созданной форме. В созданной форме в коде добавить описание модуля DM, для этого после ключевого слова USES в конце списка поставить запятую и дописать название программного модуля, например UNIT2, который соответствует созданной форме DM.

27. Добавить на главной форме в меню пункт с названием Работа с процедурами. В методе Click пункта меню написать код для запуска формы FormProcedure (см. пример кода в пункте 17 текущей лабораторной работы).

28. Подключить хранимую процедуру Count_Books_Itogo, выполненную в лабораторной работе №5, которая возвращает одно значение. На форму DM добавить компонент ADOStoredProc, переименовать компонент в ADOSP_Count. У ADOSP_Count изменить следующие свойства:

Connection на ADOConnection1;

ProcedureName на Count_Books_Itogo.

29. У компонента ADOSP_Count выбрать свойтсво Parameters и создать 3 параметра:

для Count_pages IN Int:

Name на Count_pages;

Datatype на ftInteger;

Direction на pdInput;

Value–Type на Integer;

для Title IN Char:

Name на Title;

Datatype на ftString;

Direction на pdInput;

Value–Type на OleStr;

для Itogo OUT Int:

Name на Itogo;

Datatype на ftInteger;

Direction на pdOutput;

Value–Type на Integer.

30. На форму FormProcedure добавить 3 компонента типа Edit (имена соответственно Edit1, Edit2, Edit3) и 1 компонент типа Button. Рядом с каждым компонентом Edit поставить Label и исправить их свойства Caption соответственно на «Введите количество страниц», «Введите название книги», «Количество найденных книг».

31. На кнопке поменять название на «Выполнить запрос». В методе Click кнопки написать следующий код:

DM.ADOSP_Count.Prepared;

try

DM.ADOSP_Count.Parameters.ParamByName('Count_pages').Value: =StrToInt(Edit1.Text);

DM.ADOSP_Count.Parameters.ParamByName('Title').Value: = Edit2.Text;

DM.ADOSP_Count.ExecProc;

Edit3.Text: = inttostr(DM.ADOSP_Count.Parameters.ParamByName('Itogo').Value);

finally

DM.ADOSP_Count.Prepared: =not(DM.ADOSP_Count.Prepared);

end; // try

32. Проверить работу приложения.

33. Для вывода данных из нескольких таблиц по условию можно использовать представления (View), которые создаются и хранятся на сервере.

Создать прелставление на сервере, которое будет хранить информацию о названии книги, авторе, издательстве. Для этого в утилите SQL *Plus Worksheet напишите следующий код и выполните (F5):

CREATE OR REPLACE VIEW admin_books.view_books

AS

SELECT a.name_author AS " NAME_AUTHOR1",

b.title_book AS " TITLE_BOOK1", c.publish AS " PUBLISH1"

FROM (ADMIN_BOOKS.AUTHORS a INNER JOIN ADMIN_BOOKS.BOOKS b on a.code_author=b.code_author)

INNER JOIN ADMIN_BOOKS.PUBLISHING_HOUSE c ON b.code_publish = c.code_publish

34. Подключить созданное представление через ADOQuery. На форму DM добавить компонент ADOQuery, переименовать компонент в ADOView_Books. У ADOView_Books изменить следующие свойства:

Connection на ADOConnection1;

SQL на

select * from admin_books.view_books

35. Для компонента ADOView_Books добавить на форму DM компонент DataSource и присвоить его свойствам следующие значения:

Name на Data_Books_All;

DataSet на ADOView_Books.

36. На форму FormProcedure добавить DBGrid, 1 компонент типа Button и 1 компонент типа Edit. Рядом с полем Edit поставить метку с текстом " Введите фамилию искомого автора". В свойстве Datasource компонента DBGrid выбрать Data_Books_All. На кнопке поменять название на «Выполнить запрос». В методе Click кнопки написать следующий код:

DM.ADOView_Books.Open;

IF trim(Edit4.Text)< > '' then

begin

DM. ADOView_Books.Filter: ='name_author1='+ QuotedStr(Edit4.Text);

DM.ADOView_Books.Filtered: =True;

end

else

DM.ADOView_Books.Filtered: =False;

DBGrid1.Refresh;

37. Проверить работу приложения.


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.024 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал