- •Технології проектування баз даних в delphi
- •6.051001 - Метрологія та інформаційно-вимірювальні технології
- •Технології проектування баз даних в delphi
- •6.051001 - Метрологія та інформаційно-вимірювальні технології
- •1Введение
- •2Введение в базы данных
- •2.1Типы субд
- •2.2Стандарт odbc
- •2.3Технологии взаимодействия delphi с бд
- •2.3.1Особенности технологии bde
- •2.3.2Особенности технологии ado
- •2.4Таблицы бд и связи между ними
- •2.5Первичные ключи и индексы
- •2.6Демонстрационная бд "поставщик книг"
- •3Использование odbc для подключения источника данных. Псевдонимы бд
- •3.1Внешний и внутренний псевдонимы бд
- •3.1.1Создание внешнего псевдонима
- •3.1.2Проверка работоспособности внешнего псевдонима в среде Delphi
- •3.2Внутренний псевдоним бд
- •3.2.1Назначение внутреннего псевдонима бд
- •3.2.2Создание внутреннего псевдонима
- •3.2.3Преимущества использования внутреннего псевдонима и проблемы перехода на другие субд
- •4Создание проекта с бд в технологии bde
- •4.1Особенности использования bde для соединения с источником данных
- •4.2Структура проекта с бд и визуальными компонентами
- •4.3Активизация проекта
- •4.4.4Компоненты tdbGrid
- •4.5Модуль данных
- •4.5.1Создание модуля данных tDataModule
- •4.5.2Связь модуля главного окна с модулем данных
- •4.5.3Создание компонента tDatabase
- •4.5.4Создание компонента tTable
- •4.5.5Создание компонента tDataSource
- •4.5.6Связь модуля главного окна с модулем данных
- •4.5.7Связь сетки tdbGrid и навигатора dbNavigator c источником данных tDataSource
- •4.5.8Связь главный-детальный между наборами данных
- •4.5.9Задание реляционной связи между наборами данных
- •4.5.10Активизация наборов данных
- •4.5.11Недостатки полученных решений и пути их устранения
- •4.6Объекты-столбцы сетки dbGrid
- •4.6.1Создание объектов-столбцов
- •4.6.2Редактирование объекта-столбца
- •4.7Объекты-поля наборов данных
- •4.7.1Назначение объектов-полей
- •4.7.2Создание объектов-полей
- •4.7.3Присоединение к наборам данных новых полей
- •4.7.4Присоединение полей из других таблиц. Подстановочные поля
- •4.7.5Вычисляемые поля
- •4.8Обработчики событий компонент работы с бд
- •4.8.1Обработчики событий OnGetText полей нд и компонента визуализации данных tdbGrid
- •4.8.2Установка системных переменных в обработчике событя OnCreate
- •4.9Бизнес-правила и обработчики событий компонент работы с бд
- •5Sql запросы к бд
- •5.1Компонент tQuery
- •5.2Создание компонента tQuery
- •5.3Использования компонента tQuery
- •5.3.1Свойство sql компонента tQuery
- •5.3.2Методы Open и ExecSql
- •5.3.3Схема программного формирования sql-запроса
- •5.3.4Параметрические запросы
- •5.3.5Параметрические запросы и свойство DataSource компонента tQuery
- •5.3.6Связь главный-детальный с компонентом tQuery в качестве детального набора данных
- •5.4Доступ к полям запроса
- •5.4.1Обращение к значению поля при помощи свойств объектов-полей Value и AsXxxx
- •5.4.2Обращение к значению поля при помощи свойств набора данных Fields и FieldValues
- •5.4.3Обращение к значению поля при помощи функции набора данных FieldByName
- •5.5Программный доступ к данным запроса
- •5.5.1Общая схема программного доступа к данным запроса
- •5.5.2Последовательная навигация по записям
- •5.6Обзор событий компонента tQuery
- •6Хранимые процедуры и триггеры
- •6.1Хранимые процедуры
- •6.2Создание хранимых процедур
- •6.3Вызов хранимых процедур
- •6.4Триггеры
- •7Наборы данных
- •7.1Обзор событий класса tdbDataSet
- •7.1.1Реализация каскадных изменений и бизнес-правил
- •7.1.2Другие события
- •8Технология ado
- •8.1Основные особенности технологии ado
- •8.2Реализация технологии ado в Delphi
- •8.3Создание проекта с бд в технологии ado. Установка связи с бд
- •8.3.1Создание модуля данных
- •8.3.2Начало настройки связи
- •8.3.3Выбор провайдера
- •8.3.4Настройка провайдера
- •8.3.5Настройка провайдера Microsoft Jet 4.0 ole db Provider
- •8.3.6Настройка провайдера Microsoft ole db Provider for odbc Drivers
- •8.3.7Завершение настройки связи
- •8.3.8Настройка оставшихся компонент модуля данных
- •8.4Особенности использования компонентов ado
- •8.4.1Базовые объекты ado
- •8.4.2Объект Recordset
- •8.4.3Объект Command
- •8.4.8Связной компонент tadoConnection
- •8.4.9Компонент tadoCommand
- •8.5.2Специфические свойства
- •8.5Свойства, методы и события ado компонентов-наборов
- •8.5.1Общие свойства с bde-компонентами
- •8.5.3Методы класса tCustomAdoDataSet
- •8.5.4События класса tCustomAdoDataSet
- •8.6Компонент tadoDataSet
- •8.7Компонент tadoTable
- •8.8Компонент tadoQuery
- •9Компоненты визуализации данных в Delphi
- •9.1Компонент tdbGrid
- •9.1.1Свойства
- •9.1.2Дополнительные возможности сетки
- •9.2Компоненты визуализации полей текущей записи
- •9.2.1Компонент tdbText
- •9.2.2Компонент tdbEdit
- •9.2.3Компонент tdbCheckBox
- •9.2.4Компонент tdbRadioGroup
- •9.2.5Списочные компоненты
- •9.2.6Компонент tdbMemo
- •9.2.7Компонент tdbRichEdit
- •9.2.8Компонент tdbCtrlGrid
- •9.2.9Компонент tdbNavigator
- •Приложение 2. Бд "поставщик книг"
- •Рекомендованная литература
3Использование odbc для подключения источника данных. Псевдонимы бд
Описываемые ниже действия необходимы для подключения разнородных локальных и клиент-серверных БД к BDE и, следовательно, к приложению Delphi.
Драйвер ODBC скрывает от BDE внутреннюю организацию конкретной БД и позволяет BDE рассматривать такую БД как набор отдельных таблиц, каждая из которых хранится в отдельном файле.
3.1Внешний и внутренний псевдонимы бд
Результатом применения ODBC можно рассматривать создание псевдонима БД, который скрывает тип конкретной БД и путь к ней.
В системе понятий Delphi псевдоним БД называется внешним псевдонимом БД.
Роль внешних псевдонимов состоит в предоставлении программному приложению единого интерфейса к БД, независимо от ее типа и пути к ней. Его роль особенно велика в клиент-серверных БД, в которых он содержит многочисленные дополнительные свойства, управляющие доступом к серверу.
С помощью внешнего псевдонима БД программа может получить доступ к БД определенного типа, например PosgreSQL. При этом в самом тексте программы никаких сведений, необходимых для доступа к БД, указывать не надо, но теперь в тексте порограммы будет явно присутсвовать псевдоним БД. В подавляющем большинстве случаев этого достаточно и не создает никаких проблем. Более того, в большинстве других систем программирования, например MS Visual Studio, это единственный тип псевдонима. И если на другой машине потребуется использовать другую БД, то доступ к этой БД нужно прописать под тем же псевдонимом.
Однако, если на другом компьютере внешний псевдоним уже занят, то потребуется внести изменения в код программы и настроить его на новый псевдоним. Таким образом код программы становится зависимым от конкретного внешнего псевдонима. Обычно такая ситуация бывает крайне редкой, например при тестировании приложения с разными БД.
Во избежание зависимости кода программы от конкретного внешнего псевдонима в Delphi в BDE можно создать внутреннй (локальный) псевдоним БД, что позволяет подключать к программному приложению разные БД, не внося изменения в текст программы, а выполняя лишь перенастройку внутреннего псевдонима на конкретный внешний псевдоним.
3.1.1Создание внешнего псевдонима
Этот шаг обязателен и необходим для предоставления программному приложению единого интерфейса к БД, независимо от ее типа и пути к ней.
Для создания внешнего псевдонима следует запустить ODBC. Это можно сделать 2-мя способами – с рабочего стола или находясь в среде Delphi:
запуск ODBC с рабочего стола выполняется через последовательность
Пуск> Настройка> Панель управления> Администрирование> Источники данных (ODBC)
В результате появится форма Администратор источников данных ODBC (рисунок 2.2).
запуск ODBC в среде Delphi выполняется через команду главного меню:
Database> SQL Explore (или Explorer)
В результате открывается форма SQL Explorer (рисунок 2.1):
Рисунок 2.2 – SQL Explorer
Далее на вкладке Databases необходимо щелкнуть правой кнопкой мыши и выберите пункт ODBC Administrator. В результате появится форма Администратор источников данных ODBC (рисунок 2.2).
Теперь на форме Администратор источников данных ODBC (рисунок 2.2) необходимо создать DNS (Domain Name System – системное имя домена).
Примечание: Для БД на индивидуальном компьютере можно выбрать панель Пользовательский DNS или Системный DNS, а для БД на компьютере в сети необходимо выбрать Системный DNS, т.к. он доступен всем пользователям данного компьютера и других компьютеров сети. Независимо от выбранной панели дальнейшие действия аналогичны.
Используем вкладку Системный DNS.
а
)
б)
Рисунок 2.3 – Выбор вкладки Администратора источников данных ODBC
На вкладке Системный DNS нажмите кнопку Добавить, выберите драйвер PostgreSQL ANSI и нажмите Готово.
Рисунок 2.4 – Выбор драйвера ODBC
На экране появится форма Установка драйвера ODBC для PostgreSQL. В поле DataSource (Имя источника данных) этой формы укажите удобное для вас имя – внешний (на уровне ОС), псевдоним (алиас) БД. Этот псевдоним скрывает путь к реальной БД, что позволяет изменять путь к конкретной БД, не изменяя других настроек конкретных приложений.
Примечание. Источник данных это сама БД и путь к ней.
Пусть внешним псевдонимом будет имя – BiblDataPgSQL, которое получено из имени БД BiblData и сокращенного имени СУБД PostgreSQL.
Остальные поля надлежит заполнить следующим образом. Значение localhost в поле Server эквивалентно IP-адресу 127.0.0.1.
Рисунок 2.5 – Настройка драйвера PostgreSQL
После заполнения всех полей нажмите Save.
В результате будет получен новый Системный DSN или внешний псевдоним БД с именем BiblDataPgSQL.
Рисунок 2.6 – Администратор источников данных ODBC
Теперь приложение для работы с БД может быть сразу настроено на конкретный внешний псевдоним и от программиста не требуется знаний о настройках доступа к конкретной СУБД.
Примечание. Если приложение в процессе своего использования должно подключать БД разного типа и/или месторасположения, то целесообразно создать внутренний псевдоним БД, на который может быть настроено приложение. Тогда перенастраивая внутренний псевдоним на реализованные в ODBC внешние псевдонимы, можно обеспечить независимость приложения от конкретной СУБД.
