- •Базы данных
- •Содержание
- •Введение
- •1. Создание приложений с использованием технологии bde
- •1.1. Лабораторная работа № 1: создание базы данных
- •1.1.1. Создание таблиц dBase IV
- •1.1.2. Создание индексов
- •1.1.3. Создание таблиц Paradox 7
- •1.1.4. Задание свойств таблицы Paradox 7
- •Задание на лабораторную работу № 1
- •1.2. Лабораторная работа № 2: установление связей между таблицами в многотабличной базе данных
- •1.2.1. Создание алиаса
- •1.2.2. Связывание таблиц
- •Задание на лабораторную работу № 2
- •1.3. Лабораторная работа № 3: работа с полями и компонентом dbGrid
- •1.3.1. Использование объектов-полей
- •1.3.2. Обращение к значению поля
- •1.3.3. События объекта-поля
- •1 Рис. 10. Пример использования события OnCellClick .3.4. События сетки dbGrid
- •1.3.5. Создание объектов-столбцов в dbGrid
- •1.3.6. Формирование списка возможных значений столбца
- •Задание на лабораторную работу № 3:
- •1.4. Лабораторная работа № 4: работа с наборами данных (компонент Table)
- •1.4.1. Открытие и закрытие набора данных
- •1.4.2. Доступ к записям
- •1.4.3. Навигация по набору данных
- •1.4.4. Поиск записей в наборах данных
- •1.4.5. Реализация каскадных изменений
- •1.4.6. Пример выполнения лабораторной работы
- •Задание на лабораторную работу № 4
- •1.5. Лабораторная работа № 5: работа с отчетами
- •1.5.1. Создание простейшего отчета
- •1.5.2. Создание отчета для связанных наборов данных
- •1.5.3. Использование выражений (компонент qrExpr)
- •1.5.4. Группирование данных в отчете
- •Задание на лабораторную работу № 5:
- •1.6. Лабораторная работа № 6: sql-запросы (компонент Query)
- •Задание на лабораторную работу № 6
- •2. Создание приложений, работающих с базами данных interbase
- •2.1. Лабораторная работа № 1: создание схемы базы данных
- •2.2. Лабораторная работа № 2: доступ к базе данных InterBase c использованием dbExpress
- •2.3. Лабораторная работа № 3: транзакции
- •2.4. Лабораторная работа № 4: отображение данных запроса
- •2.5. Лабораторная работа № 5: вычисляемые, агрегатные и подстановочные поля
- •2.5.1. Вычисляемые поля
- •2.5.2. Агрегатные поля
- •2.5.3. Подстановочные поля
- •2.6. Лабораторная работа № 6: связь Master-Detail
- •2.7. Лабораторная работа № 7: локальная репликация данных
- •Приложение 1 варианты заданий к лабораторным работам Вариант 1. Прием заказов
- •Вариант 2. Поставки товаров
- •Вариант 3. Исполнители
- •Вариант 4. Картинная галерея
- •Вариант 5. Порт
- •Вариант 6. Студенты
- •Вариант 7. Строительная компания
- •Вариант 8. Автосалон
- •Вариант 9. Аэропорт
- •Вариант 10. Диагностический центр
- •Вариант 11. Реклама
- •Вариант 12. Быстрая пицца
- •Вариант 13. Клуб собаководов
- •Вариант 14. Грузоперевозки
- •Вариант 15. Аптека
- •Вариант 16. Автовокзал
- •Вариант 17. Общественная организация
- •Вариант 18. Учет потребления газа
- •Приложение 2 порядок выполнения лабораторных работ
- •Библиографический список
2.2. Лабораторная работа № 2: доступ к базе данных InterBase c использованием dbExpress
Задание: Создать программу в Delphi, которая с помощью средств доступа dbExpress соединяется с базой данных. С помощью компонентов SQLDataSet, DataSetProvider, ClientDataSet, DataSource и DBGrid реализовать отображение данных из одной таблицы. Сделать форму вставки и изменения записи для одной из таблиц. Рекомендуется создавать форму ввода для справочных таблиц, если они присутствуют в схеме задания. Добавление и модификацию записей производить с использованием методов компонента SQLConnection. Выбор модифицируемой записи производить по ключевому полю таблицы.
Как вариант, для вставки и изменения записей воспользоваться методами компонентов клиентских наборов данных.
Выполнение.
Поместите на форму все компоненты, указанные в задании. Компоненты SQLConnection и SQLDataSet находятся на вкладке dbExpress, а DataSetProvider и ClientDataSet — на вкладке Data Access. Настройте компоненты следующим образом:
Компонент SQLConnection:
свойству DriverName задайте значение InterBase;
откройте редактор свойства Params и укажите параметры Database, User_Name и Password. Например:
-
Database
User_Name
Password
d:\students\v-312\mybase.gdb
SYSDBA
masterkey
установите свойству LoginPrompt значение false;
установите свойству Connected значение True.
Примечание: описанные действия допустимы только при выполнении лабораторных работ. В реальных системах жесткое задание имени пользователя и пароля неприемлемо, т.к. может снизить безопасность приложения. Поэтому поля User_Name и Password следует оставлять пустыми.
Если вместо стандартного окна запроса имени пользователя и пароля вы хотите использовать свою форму, отключите свойство LoginPrompt и производите запрос в обработчике события BeforeConnect компонента SQLConnection. В этом случае параметры User_Name и Password устанавливаются во время выполнения в соответствии с данными, введенных пользователем.
Компонент SQLDataSet:
в свойстве SQLConnection выберите имя компонента SQLConnection;
свойству CommandType установите значение cTable;
в свойстве CommandText пропишите имя вашей таблицы;
свойство Active установите в True;
Компонент DataSetProvider: в свойстве DataSet выберите имя компонента SQLDataSet;
Компонент ClientDataSet:
в свойстве ProviderName укажите имя компонента DataSetProvider;
свойство Active установите в True;
Компонент DataSource: в свойстве DataSet укажите имя компонента ClientDataSet;
Компонент DBGrid: выберите имя компонента DataSource в свойстве DataSource.
Если все действия выполнены верно, то еще во время разработки программы вы должны увидеть в DBGrid данные вашей таблицы.
Методы клиентского набора данных ClientDataSet для вставки и модификации записей аналогичны методам компонента Table технологии BDE. Это Insert, InsertRecord, Edit, Post и т.п. При работе с клиентским набором данных нужно учесть, что внесенные в данные изменения сохраняются на сервере только после вызова метода ApplyUpdates клиентского набора данных:
if ClientDataSet1.ApplyUpdates(0)=0 then
ClientDataSet1.Refresh
else
ShowMessage(‘Ошибка при сохранении’);
Параметром метода является максимальное число ошибок, при превышении которого дальнейшее внесение изменений будет прекращено.