prosdo.ru
добавить свой файл
1


Занятие 5

Дисциплина: Разработка и эксплуатация АИС

Тема занятия: Тема 3.1. Основы технологии ADO

Выделенное синим цветом записать
Разработка простейших приложений БД с использованием ADO
1. Создание дочерней формы

1) Создаем дочернее окно для вывода справочника:

File – New – Form – Delphi for Win32,

Выполним следующие действия:

а) file + save as (модуль UNIT1 сохранить под именем UNITZagotovitel)

b) Caption – Справочник заготовителей,

Name – FormZagotovitel

FormStyle – fsMDIChild (дочернее окно)

Position – mainFormCenter

Сохраните проект и запустите его на выполнение. Как видно, автоматически создается не только главное, но остальные окна. Кроме этого, при попытке закрыть дочернее окно оно сворачивается.

Исправим ситуацию:
2) закрытие дочерней формы по кнопке «закрыть»: на вкладке Events в событии OnClose формы FormZagotovitel указываем, что при «закрытии» форма должна закрываться (вкладка Events инспектора объектов – дважды щелкнуть по событию OnClose)(dtавщиков:

Action:=caFree //Закрыть форму и удалить из памяти

Проверьте, что дочерняя форма закрывается.
3) Отмена автозапуска дочерней формы:

Выберите пункт Project – Options и на закладке Forms в разделе AutoCreate forms (автоматически создаваемые формы) оставьте только Formmain и DATABD, остальные формы переносятся в правую часть окна.

Проверьте, что дочерняя форма не запускается
4) Обеспечить запуск формы FormZagotovitel из меню приложения.

Добавим в наше приложение меню:

, и вызвав через правую кнопку меню Menu Designer, создадим раздел Справочники, а в нем – пункт Заготовители.




Создадим обработчик OnClick этого меню.

а) В раздел Uses модуля UnitMain добавляем UNITZagotovitel (file + Use Unit),

б) в обработчике пункта меню прописать:

Application.CreateForm(TFormZagotovitel, FormZagotovitel); //создать форму
Сохраните проект, убедитесь в работоспособности меню.
5) Выведем данные на заготовителей.


  1. Открыть созданный компонент DataBD. (file + open + UNITBD)

  2. В модуль DataBD с закладки ADO разместить компонент ADOTable, указать свойства:

Name – TableZagot

Connection – ADOSklad (из списка)

TableName - Zagotovitel (название таблицы)

Для подключения таблицы к проекту укажите Active=True

  1. В модуль DataBD с закладки Data Access возьмите компонент DataSource , укажите:

Name – DataSprZagot

DataSet – TableZagot. Модуль можно закрыть.

  1. На форму FormZagotovitel с палитры Data Controls разместить компонент DBGrid. Установите в свойстве

DataSource - DataBD.DataZagotovitel (из списка, если в списке не появляется – попробуйте предварительно сохранить и откомпилировать проект).

Форма должна отобразить данные из таблицы. Для управления записями на эту же форму разместить компонент DBNavigator, управляющий компонентом DataSet:

DataSource - DataBD.DataZagotovitel.


Приложение готово. Запустите приложение на выполнение.

2. Свойства и методы компонента TADOTable


(самостоятельно)

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

Компонент TADOTable имеет множество полезных свойств.

MasterSource - в этом свойстве указывается главная, по отношению к текущей таблица.

ReadOnly – если это свойство равно true, то таблицу нельзя редактировать. В этом случае данные только отображаются. Обязательно устанавливай это свойство для тех таблиц, где данные не должны изменяться и пользователь не должен вносить в них изменения.

TableDirect – это свойство отображает какой будет происходить доступ к таблице. Если этот параметр равен true то будет происходить прямой доступ к таблице по имени.

Если false то незаметно для тебя будет происходить специальный SQL запрос к базе данных. Не все базы данных позволяют работать через прямой доступ, поэтому это свойство по умолчанию равно false.

TableName – имя таблицы, данные которой мы хотим обрабатывать.

CacheSize – размер кэш памяти. Если здесь установить число 50, то при первом подключении к таблице компонент выберет первые 50 строк и поместит их в локальной памяти, что ускорит доступ к ним.

CanModify – свойство похоже на ReadOnly и указывает на возможность редактирование данных таблицы.

CommandTimeout – время ожидания выполнения команды. Когда компонент

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

Connection – здесь указывается компонент TADOConnection, через который

происходит подключение.

ConnectionString – строка подключения к базе данных.

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

CursorType – тип курсора. Тут возможен один из следующих вариантов:

- ctUnspecified расположение курсора не указано

- ctOpenForwardOnly – курсор может двигаться только вперёд.

- ctKeyset при этом курсоре изменения внесённые одним пользователем не видны остальным пользователям подключённым к этой таблице. Если с одной таблицей работают одновременно несколько пользователей, то при таком курсоре для отображения изменений других пользователей нужно отключиться от базы и подключиться к ней снова.

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

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

Внимание!!! Если курсор расположен на клиенте, то можно использовать

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

Filter – строка фильтра.

Filtered – является ли таблица фильтруемой. Если здесь установить false то строка фильтра (filter) игнорируется.

IndexFieldNames – имя индексированной колонки. Индексы используются для сортировки данных или для связи между таблицами.

RecNo - номер текущей выделенной строки.

RecordCount – количество строк в таблице.

Sort - строка, в которой указывается тип сортировки. Например, для сортировки по полю «Телефон» сюда нужно записать строку: ADOQuery1.Sort := 'Телефон ASC'.

Оператор ASC говорит о том, что надо сортировать в порядке возрастания. Оператор DESC говорит о сортировании в порядке убывания.

Active – если это свойство равно true, то таблица открыта.

AggFields – здесь хранятся все агрегатные поля.

AutoCalcFields – если здесь true, то надо автоматически пересчитывать поля.


Bof на это свойство влиять нельзя, но если оно равно true, то мы находимся в начале файла.

Bookmark - здесь находиться текущая закладка.

Eof - на это свойство влиять нельзя, но если оно равно true, то мы находимся в конце файла.

FieldCount – здесь хранится количество полей в таблице.

Fields – через это поле можно получить доступ к значениям полей.

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

Table1.FieldValues[‘Телефон’]:='3346598';

FilterOption – настройки фильтра. Здесь можно указывать следующие параметры:

- foCaseInsensitive фильтр будет не чувствителен к регистру.

- foNoPartialCompare если стоит этот параметр, то сравнения будут происходить с точной копией указанного значения в фильтре. Если параметр не указан, то в фильтр будут попадать строки содержащие значение в фильтре, но не являющиеся его точной копией.

Например, если в фильтре указано показывать слова «са», то в фильтр попадут все слова начинающиеся на «са» (самолёт, самокат).

Modified – если это свойство равно true, то в таблице были внесены изменения.

Методы компонента TADOTable

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

BookmarkValid – этот метод проверяет правильность закладки. В качестве единственного параметра нужно указать закладку типа TBookmark и если она является действительной, то результатом будет true.

CancelUpdates - отменить обновления, сохранённые в кэш памяти

CompareBookmarks.- сравнение двух закладок. У метода два параметра типа

TBookmark. Эти две закладки сравниваются. Если закладки равны, то результат равен нулю. Если первая меньше второй, то результат будет –1. Если первая больше второй, то результат равен единице.


DeleteRecords – удалить записи. У метода один параметр – какие записи удалять. Ты можешь указать следующие значения в качестве параметра:

- arCurrent удалить только текущую запись.

- arFiltered удалить записи удовлетворяющие установленному фильтру.

- arAll – все записи.

- arAllChapters удалить записи во всех разделах ADO.

Append – добавить новую запись в конец таблицы.

Cancel – отменить изменения текущей строки, если изменения ещё не были

сохранены с помощью метода Post.

Close – закрыть таблицу.

Delete – удалить текущую строку.

Edit – перейти в режим редактирования. После этого можно изменять значения полей.

FieldByName – найти поле по имени. В качестве единственного параметра нужно указать имя поля виде строки и в результате получаем ссылку на поле в виде объекта TField.

First – перейти на первую строку в таблице.

Insert – вставить новую строку в таблицу.

IsEmpty – если метод вернёт true то в таблице нет записей.

Last - перейти на последнюю запись в таблице.

Next – перейти на следующую запись.

Post – принять все изменения.

Prior - двигаться на предыдущую запись в таблице.

Refresh – обновить информацию о данных.

UpdateRecord – обновить текущую запись.
3. Отображение данных в сетке DbGrid

Теперь переходим в модуль DataBD и попытаемся настроить отображение данных. Дважды щёлкнуть по компоненту ADOZagotovitel, появиться окно редактирования полей базы данных.



Рис. Окно редактирования полей базы данных

Добавить все поля базы данных. Для этого щёлкнуть в нём правой кнопкой мыши и в появившемся меню выбери пункт Add All Field (Добавить все поля). Окно автоматически заполниться именами полей.


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

Свойства полей:

Visible = false.

DisplayWidth установить необходимую ширину.

DisplayLabel сделать заголовок столбца на русском языке.

EditMask – маска ввода чисел или дат на экран , например, чтобы выводить даты в полном формате (25мая 2006 надо установить «99/99/9999»).

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

MaxValue – максимально допустимое значение. Если это числовое поле и оно должно изменяться в определённых рамках (например, от 0 до 100), то желательно указать эти ограничения здесь, чтобы сократить вероятность опечатки пользователем.

MinValue – минимально допустимое значение.

ReadOnly –поле только для чтения. Если какой-то поле не должно изменяться, то установить в свойстве ReadOnly значение true. В этом случае обезопасим программу от случайного изменения данного поля пользователем.

Required – если здесь true, то поле является обязательным и обязательно должно иметь какое-то значение. Если пользователь ничего не укажет, то программа сообщит об этом.

Tag – просто числовое значение, которое можно использовать по своему усмотрению.

Установить для таблицы заготовителей следующие свойства:

Поле таблицы

Visible

DisplayLabel

DisplayWidth

Id_zagot


false







Family




Фамилия

15

Name




Имя

15

Otch




Отчество

15

Address




Адрес

25

telephone




телефон

10

После чего вывод данных изменится: