3) Для объекта Table1:
- свойству Name присвоим значениеTableTovari;
- свойству DataBaseName присвоим имя псевдонима БД;
- свойству TableName присвоим имя таблицы - Tovari. DB;
- свойству Active присвоим значение true.
- в свойстве TableType – формат таблицы ttParadox.
4) Для объекта Table2:
- свойству Name присвоим значение TableSendtovari;
- свойству DataBaseName присвоим имя псевдонима БД;
- свойству TableName присвоим имя таблицы - Sendtovari. DB;
- свойству Active присвоим значение true;
- Чтобы содержимое подчиненного набора соответствовало выбору записи в главном наборе подчиненную таблицу нужно связать с главной для этого нужно:
а) свойству MasterSource присвоим значение DS_Tovari;
б) щелкнуть два раза по полю ввода для свойства MasterFields в окне инспектора объектов, в появившемся окне редактора связей - Field Link Designer в списке Available Indexes выбрать NameGoods;
в) в списках Detail Fields и Master Fields выбрать поле связи – NameGoods;
г) нажать кнопку ADD для установки связи, после этого в списке Joined Fields появится надпись NameGoods -> NameGoods.
- в свойстве TableType – формат таблицы ttParadox.
5) Для объекта DBGrid1:
- свойству Name присвоим значение DBGridTovari;
- свойству DataSource присвоим значение DS_Tovari;
6) Для объекта DBGrid2:
- свойству Name присвоим значение DBGridSendtovari;
- свойству DataSource присвоим значение DS_Sendtovari;
7) Для объекта DBImage1:
- свойству Name присвоим значение DBImage;
- свойству DataSource присвоим значение – DS_Tovari;
- свойству DataField присвоим значение - Image;
- свойству Stretch присвоим значение true;
- свойству QuickDraw присвоим значение false.
8) Для объекта DBMemo1:
- свойству Name присвоим значение DBMemo;
- свойству DataSource присвоим значение – DS_Tovari;
- свойству DataField присвоим значение - Note;
- свойству ScrollBars присвоим значение ssBoth.
9) Для объекта DBNavigator1:
- свойству Name присвоим значение DBNavigatorTovari;
- свойству DataSource присвоим значение –DS_Tovari.
10) Для объекта DBNavigator2:
- свойству Name присвоим значение DBNavigatorSendtovari;
- свойству DataSource присвоим значение –DS_Sendtovari.
11) Для объекта SaveDialog1:
- свойству Name присвоим значение SaveDialog.
- свойству Filter: Filter Name присвоим значение – Текстовый файл (*.txt); Filter - *.txt.
12) Для объекта OpenPictureDialog1:
- свойству Name присвоим значение OpenPictureDialog;
- свойству DefaultExt присвоим значение bmp;
- свойству Filter: Filter Name присвоим значение - Растровое изображение (*.bmp) ; Filter - *.bmp.
13) Для объекта OpenDialog1:
- свойству Name присвоим значение OpenDialog;
- свойству DefaultExt присвоим значение txt;
- свойству Filter: Filter Name присвоим значение – Текстовый файл (*.txt) ; Filter - *.txt.
14) Для объекта BitBtn1:
- свойству Name присвоим значение BSaveText;
- свойству Caption присвоим значение – Сохранить.
15) Для объекта BitBtn2:
- свойству Name присвоим значение BLoadText;
- свойству Caption присвоим значение – Загрузить.
16) Для объекта BitBtn3:
- свойству Name присвоим значение BLoadImage;
- свойству Caption присвоим значение – Загрузить изображение.
В редакторе кода программы необходимо написать обработчик нажатия на кнопку BSaveText:
procedure TForm1.BSaveTextClick(Sender: TObject);
begin
if Sender = BSaveText then//Проверяем является ли инициатором события
begin // кнопка BSaveText.
SaveDialog. DefaultExt:='txt';
//устанавливаем значение расширения файла по умолчанию = txt.
If SaveDialog. Execute then DBMemo. Lines. SaveToFile(SaveDialog. FileName);
end;
if (Sender = BLoadText) and (OpenDialog. Execute) then
with TableTovari do
begin
Edit; // Перевод таблицы в режим редактирования.
DBMemo. Lines. LoadFromFile(OpenDialog. FileName);
Post; // Записать сделанные в таблице изменения.
end;
if (Sender = BLoadImage) and (OpenPictureDialog. Execute) then
with TableTovari do
begin
Edit; DBImage. Picture. LoadFromFile(OpenPictureDialog. FileName);
Post;
end;
end;
Остальным кнопкам: BloadText, BsaveImage, BloadImage в инспекторе объектов на странице Events событию OnClick присвоим значение BsaveTextClick.
На этом создание программы завершено, для ее запуска используйте команду главного меню Run/Run. Примерный вид запущенного приложения показан на рисунке.
Самостоятельно проанализировать работу программы. Описать принцип отображения связанных данных.
Контрольные вопросы:
1. Каким образом организуется взаимосвязь между таблицами БД?
2. Какие типы связей могут поддерживаться средой Delphi?
3. Какие типы данных могут быть определены для значений полей в таблицах БД?
4. Какие особенности хранения существуют для нетрадиционных типов данных?
Лабораторная работа № 6.
Создание приложений для БД типа MS Access. Технология ADO.
Цель работы:
Образовательные:
- - знакомство с возможностями программной среды по созданию БД типа MS Access;
- изучение принципов создания таблиц;
- конструирования запросов и отчетов;
- создание средств просмотра и печати отчета.
Воспитательные:
- развитие навыков самостоятельного мышления;
- выработка умений использовать ранее полученные знания для решения практических задач;
- формирование практических навыков при работе с ЭВМ.
Оборудование и оснащение работы:
Текст лабораторной работы; ЭВМ.
Теоретический материал:
СУБД MS Access является довольно распространенной средой создания информационных систем предприятий и организаций. Эта востребованность порождает спрос на разработку приложений к БД такого типа. Принципы создания таких приложений не требуют использования ранее изученного приложения Database Desktop. Они основаны на специальной технологии ADO. Соответственно меняются и понятия необходимые для построения. Структура баз данных, таблицы, связи формируются с помощью программы MS Access и сохраняются в папке разрабатываемого проекта. Понятие алиаса меняется на понятие путь к файлам баз данных, который прописывается для компонента компоненты ADOConnection со страницы ADO. Этот же компонент контролирует подключение к данным таблиц. Сами таблицы, как набор данных определяются компонентом ADOTable со страницы ADO. На этой же странице располагается компонент формирования запросов ADOQuery. Управление этими компонентами аналогичны компонентам управления БД созданных утилитой Database Desktop. Общими являются остальные компоненты необходимые для отображения и представления данных: DataSource с закладки Data Access; DBGrid, DBNavigator, DBEdit со страницы DataControls и т. д. Принцип настройки компонентов определен теми же правилами что и для БД созданных утилитой Database Desktop.
Задача:
Сформировать таблицу MS Access. Организовать форму для заполнения данных; просмотр данных в табличном режиме. Создать запрос на отбор данных по числовому полю. По запросу сформировать отчет в виде простого документа. Сформировать запрос на сортировку данных по строковым данным с выбором части полей и создать отчет, отображающий результат.
Ход работы:
1.Создать таблицу по схеме Товары (код_товара, наименование, дата поступления, срок годности, количество) с помощью программы СУБД MS Access. Сохранить таблицу в папке будущего проекта.
2.Разработка главной формы должна предусматривать возможность заполнения, просмотра данных, результатов запросов и отчетов.
3.Форма для заполнения организуется по принципу электронного бланка с отображением всех полей таблицы, а просмотр в табличном режиме должен исключить возможность ввода и редактирования данных (средствами навигатора).
4.Для организации доступа к данным на форме размещаются компоненты ADOConnection и ADOTable со страницы ADO, а так же компонент DataSource со страницы Data Access.
5.Компонент ADOConnection с закладки ADO палитры компонентов. Настроим соединение с сервером, которое должно быть прописано в свойстве ConnectionString. Для этого надо дважды щёлкнуть по строке ConnectionString и перед нами открывается окно. Щёлкаем кнопку Build и перед нами открываеться ещё одно окно, для доступа к базам данных MS Access используется драйвер «Microsoft Jet 4.0 OLE DB Provider». Переходим на закладку «Connection». надо ввести имя (если надо то и путь) базы данных в строку «Select or enter a database name». Как только выберешь базу данных, нажми кнопку Test Connection, чтобы протестировать соединение. Если всё указано правильно, то появится сообщение «Test connection succeeded».Теперь в свойствах компонента ADOConnection отключи свойство LoginPrompt, выставив его в False.
6.Компонент ADOTable с закладки ADO палитры компонентов предназначен для формирования набора данных по таблицам. В свойстве Connection и выбирается ранее установленный компонент ADOConnection.
7.Для отображения данных из таблицы надо ещё установить на форму компонент DataSource с закладки Data Access палитры компонентов. Теперь этому компоненту надо указать, какую именно таблицу он должен отображать.
8.Остальные компоненты для просмотра и управления данными стандартные и не зависят от типа БД.
Самостоятельно дорешать задачу.
Контрольные вопросы:
1.На какие принципы опирается технология ADO?
2.Какие компоненты используются для организации доступа в технологии ADO?
3.Какой тип БД определяет технология работы с базами данных ADO?
4.С помощью какого программного приложения формируется БД в технологии ADO?
ЗАКЛЮЧЕНИЕ
Опыт применения лабораторных работ
Данный комплекс лабораторных работ «Разработка баз данных в среде Delphi» используется уже третий год в учебном процессе студентами четвертого курса специальности 230103 Автоматизированные системы обработки информации и управления (по отраслям). Не смотря на то, что тема является довольно сложной, и требует соответствующей подготовки студентов, а так же определенных навыков программирования с, результаты показывают положительную динамику в обучении: стал выше уровень обученности учащихся по данному разделу, повысилось качество усвоения материала. Большее количество студентов выбирают обозначенный раздел для разработки курсового проектирования по дисциплине «Прикладное программирование», выпускники используют полученные знания для создания автоматизированных информационных систем в организациях при прохождении практики и дальнейшего трудоустройства. Многие нынешние и бывшие студенты используют материалы лабораторных работ для подготовки к промежуточной и итоговой аттестации.
Представление лабораторных работ на бумажном носителе имеет свои плюсы: простота и удобство в использовании; возможность тиражирования и распространения; доступность в любой аудитории и в любом задании.
Дальнейшая доработка может позволить сформировать электронный вариант комплекса лабораторных работ «Разработка баз данных в среде Delphi» и использовать его как способ самостоятельного изучения темы средствами сетевых технологий или дистанционного обучения.
СПИСОК ЛИТЕРАТУРЫ
DELPHI. Учебный курс.- М., Молгачева, 2001 г.
. Основы программирования в интегрированной среде DELPHI. Практикум – М., БИНОМ, 2004 г.
. DELPHI в задачах и примерах. – СПб., БХВ Питербург, 2004 г.
Базы данных в DELPHI. Самоучитель – СПб., Питер, 2003 г.
Базы данных –М., Мир, 2002 г.
Delphi: новые возможности и некоторые примеры их применения: Наталия Елманова, Центр Информационных Технологий (http//www. *****@***ru)
ПРИЛОЖЕНИЕ
Приложение 1.
Справочный материал. Типы данных в формате Paradox
Тип поля | Обозначение | Хранимые значения |
1 | 2 | 3 |
Alpha | A | Символьные значения длиной до 255 символов. |
Number | N | Числовые значения с плавающей точкой в диапазоне -10307...+10308. Точность до 15 значащих цифр. |
Money | $ | Аналогичен типу Number, но предназначен для хранения денежных сумм. Число знаков после запятой по умолчанию равно двум. При пока-е значения выводится знак денежной единицы. |
Short | S | Целочисленные значения в диапазоне -32 768 ... 32 767. |
LongInteger | I | Целочисленные значения в диапазоне -2 147 483 648 ... 2 147 483 647. |
BCD | # | Числовые значения, в том числе и дробные, в двоично-десятичном формате. Обеспечивает исключительную точность при работе с большим числом знаков в дробной части. Применяется в вычислениях, где важна точность (финансовые, научные приложения). Для проведения вычислений требует больше времени, чем для числовых полей иных типов. |
Date | D | Значения даты |
Timestamp | @ | Значения даты и времени |
Mемо | M | Строковые значения длиной более 255 символов. Максимальная длина не ограничена. От 1 до 240 символов могут храниться вместе с таблицей БД; остальные хранятся в виде M^wo-файла (расширение. MB) |
Formatted Memo | F | Форматированный текст произвольной длины, в котором отдельные фрагменты текста могут использовать разные шрифты, цвет и стили. |
Graphic Fields | G | Графические изображения в форматах BMP, PCX, 77F, GIF, EPS, которые при хранении преобразуются к формату BMP. Хранятся отдельно от основной таблицы БД. |
OLE | 0 | Информация в форматах, поддерживаемых технологией OLE (Object Linking and Embedding) корпорации Microsoft. |
Logical | L | Логические значения (True, False). Автоинкрементное поле. Значения доступны только для чтения. |
Binary | В | Двоичные значения произвольной длины. Должны интерпретироваться приложениями пользователя. Хранятся отдельно от основной таблицы в М5-файлах. |
Bytes | Y | Произвольные двоичные значения, интерпретируемые приложениями пользователя, длиной от 1 до 240 байт. Хранятся вместе с таблицей БД. |
Приложение 2. Инструкция SELECT
Синтаксис
SELECT [предикат] { * | таблица.* | [таблица.]поле1 [AS псевдоним1] [, [таблица.]поле2 [AS псевдоним2] [, ...]]}
FROM выражение_таблицы [, ...] [IN внешняя_база_данных]
[WHERE... ]
[GROUP BY... ]
[HAVING... ]
[ORDER BY... ]
[WITH OWNERACCESS OPTION]
Инструкция SELECT включает в себя следующие компоненты.
Аргумент | Описание |
предикат | Один из следующих предикатов: ALL, DISTINCT, DISTINCTROW или TOP. Предикаты используются для ограничения числа возвращаемых записей. Если предикат не задан, по умолчанию используется ALL. |
* | Указывает, что из заданной таблицы или таблиц выбираются все поля. |
таблица | Имя таблицы, из полей которой отбираются записи. |
поле1, поле2 | Имена полей, содержащих данные, которые необходимо извлечь. Если задано несколько полей, данные извлекаются из них в указанном порядке. |
псевдоним1, псевдоним2 | Имена, используемые как заголовки столбцов вместо исходных названий столбцов таблицы. |
выражение_таблицы | Имя таблицы (таблиц), содержащей данные, которые необходимо извлечь. |
внешняя_база_данных | Имя базы данных, содержащей таблицы, указанные в компоненте выражение_таблицы, если они не находятся в текущей базе данных. |
Инструкции SELECT не вносят изменений в содержимое базы данных.
Минимальный синтаксис инструкции SELECT выглядит следующим образом.
SELECT поля FROM таблица
Чтобы выбрать все поля в таблице, можно использовать звездочку (*). В следующем примере выбираются все поля таблицы «Сотрудники».
SELECT * FROM Сотрудники;
Если имя поля включено в несколько таблиц в предложении FROM, поместите перед ним имя таблицы и оператор . (точку). В следующем примере поле «Отдел» есть в таблицах «Сотрудники» и «Начальники». Инструкция SQL выбирает отделы из таблицы «Сотрудники» и имена начальников из таблицы «Начальники».
SELECT Сотрудники. Отдел, Начальники. ИмяНачальника
FROM Сотрудники INNER JOIN Начальники
WHERE Сотрудники. Отдел = Начальники. Отдел;
При создании набора записей ядро базы данных использует имя поля таблицы как имя объекта «Поле» в объекте набора записей. Если требуется назначить другое имя поля или имя не предоставляется выражением, используемым для генерирования поля, используйте зарезервированное слово AS. В следующем примере заголовок «День рождения» используется для названия возвращенного объекта Поле в полученном объекте набора записей.
SELECT ДатаРождения
AS День_рождения FROM Сотрудники;
При использовании статистических функций или запросов, возвращающих неоднозначные или одинаковые имена объекта Поле, необходимо использовать предложение AS для создания другого имени для объекта Поле. В следующем примере заголовок «Перепись» используется для названия возвращенного объекта Поле в полученном объекте набора записей.
SELECT COUNT(КодСотрудника)
AS Перепись FROM Сотрудники;
В инструкции SELECT можно использовать дополнительные предложения для дальнейшего ограничения и упорядочения полученных данных.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 |


