Главная Учебники - Разные Лекции (разные) - часть 32
|
Создание баз
данных в Delphi Урок
1:
Настройка BDE
Содержание
урока 1: Обзор 2 Сущность
BDE 2 Алиасы 2 Системная
информация
утилиты настройки
BDE 4 Заключение 5
На этом уроке
мы познакомимся
с ядром баз
данных компании
Борланд - Borland
Database Engine (BDE), а также
научимся создавать
и редактировать
алиасы - механизм,
облегчающий
связь с базами
данных. Кроме
того, мы изучим,
как конфигурировать
ODBC драйверы.
Мощность и
гибкость Delphi при
работе с базами
данных основана
на низкоуровневом
ядре - процессоре
баз данных
Borland Database Engine (BDE). Его интерфейс
с прикладными
программами
называется
Integrated Database Application Programming Interface (IDAPI). В
принципе, сейчас
не различают
эти два названия
(BDE и IDAPI) и считают
их синонимами.
BDE позволяет
осуществлять
доступ к данным
как с использованием
традиционного
record-ориентированного
(навигационного)
подхода, так
и с использованием
set-ориентированного
подхода, используемого
в SQL-серверах
баз данных.
Кроме BDE, Delphi позволяет
осуществлять
доступ к базам
данных, используя
технологию
(и, соответственно,
драйверы) Open
DataBase Connectivity (ODBC) фирмы
Microsoft. Но, как показывает
практика,
производительность
систем с использованием
BDE гораздо выше,
чем оных при
использовании
ODBC. ODBC драйвера
работают через
специальный
“ODBC socket”, который
позволяет
встраивать
их в BDE.
Все инструментальные
средства баз
данных Borland
- Paradox, dBase, Database Desktop - используют
BDE. Все особенности,
имеющиеся в
Paradox или dBase, “наследуются”
BDE, и поэтому этими
же особенностями
обладает и
Delphi.
Таблицы сохраняются
в базе данных.
Некоторые СУБД
сохраняют базу
данных в виде
нескольких
отдельных
файлов, представляющих
собой таблицы
(в основном,
все локальные
СУБД), в то время
как другие
состоят из
одного файла,
который содержит
в себе все таблицы
и индексы
(InterBase). Например,
таблицы dBase и
Paradox всегда сохраняются
в отдельных
файлах на диске.
Каталог, содержащий
dBase .DBF файлы или
Paradox .DB файлы,
рассматривается
как база данных.
Другими словами,
любой каталог,
содержащий
файлы в формате
Paradox или dBase, рассматривается
Delphi как единая
база данных.
Для переключения
на другую базу
данных нужно
просто переключиться
на другой каталог.
Как уже было
указано выше,
InterBase сохраняет
все таблицы
в одном файле,
имеющем расширение
.GDB, поэтому этот
файл и есть
база данных
InterBase.
Удобно не просто
указывать путь
доступа к таблицам
базы данных,
а использовать
для этого некий
заменитель
- псевдоним,
называемый
алиасом. Он
сохраняется
в отдельном
конфигурационном
файле в произвольном
месте на диске
и позволяет
исключить из
программы
прямое указание
пути доступа
к базе данных.
Такой подход
дает возможность
располагать
данные в любом
месте, не перекомпилируя
при этом программу.
Кроме пути
доступа, в алиасе
указываются
тип базы данных,
языковый драйвер
и много другой
управляющей
информации.
Поэтому использование
алиасов позволяет
легко переходить
от локальных
баз данных к
SQL-серверным
базам (естественно,
при выполнении
требований
разделения
приложения
на клиентскую
и серверную
части).
Для создания
алиаса запустите
утилиту конфигурации
BDE (программу
bdeadmin.exe), находящуюся
в каталоге, в
котором располагаются
динамические
библиотеки
BDE.
Рис. 1: Главное
окно утилиты
конфигурации
BDE
Рис.
2: В диалоговом
окне добавления
нового алиаса
можно указать
тип базы данных TYPE STANDARD DEFAULT
DRIVER PARADOX ENABLE
BCD FALSE PATH c:\users\data
SQL-сервер InterBase и
другие типы
баз данных
требуют задания
большого количества
параметров,
многие из которых
можно оставить
установленными
по умолчанию.
Итак, мы познакомились
с наиболее
важной возможностью
утилиты настройки
BDE - созданием
и редактированием
алиасов, определяющих
параметры
доступа к базам
данных. Однако,
утилита настройки
BDE позволяет
специфицировать
не только алиасы,
но и драйверы
для доступа
к базам данных,
а также различную
системную
информацию,
составляющую
операционное
окружение этих
самых алиасов.
Рассмотрим,
например, системную
информацию
драйвера PARADOX:
NET DIR. Параметр
содержит
расположение
каталога сетевого
управляющего
файла. Он нужен
для того, чтобы
обратиться
к таблице PARADOX
на сетевом
диске.
VERSION. Номер
версии драйвера.
TYPE. Тип драйвера.
LANGDRIVER. Языковой
драйвер, определяющий
множество
допустимых
символов.
BLOCK SIZE. Размер
блока на диске,
используемого
для запоминания
одной записи.
FILL FACTOR. Содержит
процент от
блока на текущем
диске. Параметр
нужен для создания
индексных
файлов.
LEVEL. Параметр
определяет
тип формата
таблицы, используемой
для создания
временных
таблиц.
STRICTINTEGRTY. Параметр
использования
ссылочной
целостности.
Если он равен
TRUE, то вы не можете
изменить таблицу
с ссылочной
целостностью,
а если FALSE, то можете,
но рискуете
нарушить целостность
данных.
Как уже отмечалось
выше, утилита
настройки BDE
сохраняет всю
конфигурационную
информацию
в файле IDAPI.CFG. Этот
файл с предустановленными
ссылками на
драйверы и
некоторыми
стандартными
алиасами создается
при установке
Delphi. Кроме того,
он создается
при установке
файлов редистрибуции
BDE (т.е. когда Вы
переносите
BDE и SQL Links на другие
компьютеры).
Итак, на данном
уроке мы постарались
понять для, что
такое BDE,
изучили очень
важное для
работы с базами
данных понятие
- алиас, а также
научились
настраивать
его параметры
для корректной
работы программы
на примере
драйвера PARADOX.
Урок 1:
Настройка
BDE
Создание баз
данных в Delphi
Урок 2:
Создание таблиц
с помощью Database
Desktop
Содержание
урока 2: Обзор 2 Утилита
Database Desktop 2 Заключение 9
На данном уроке
мы изучим, как
создавать
таблицы базы
данных с помощью
утилиты Database Desktop,
входящей в
поставку Delphi. Хотя
для создания
таблиц можно
использовать
различные
средства (SQL -
компонент
TQuery
и компонент
TTable),
применение
этой утилиты
позволяет
создавать
таблицы в
интерактивном
режиме и сразу
же просмотреть
их содержимое
- и все это для
большого числа
форматов. Это
особенно удобно
для локальных
баз данных, в
частности
Paradox и dBase.
Database Desktop - это утилита,
во многом похожая
на Paradox, которая
поставляется
вместе с Delphi для
интерактивной
работы с таблицами
различных
форматов локальных
баз данных -
Paradox и dBase, а также
SQL-серверных
баз данных
InterBase, Oracle, Informix, Sybase (с использованием
SQL Links). Исполняемый
файл утилиты
называется
DBD32.EXE. Для запуска
Database Desktop просто дважды
щелкните по
ее иконке.
Рис. 1: Выпадающий
список в диалоговом
окне Table Type позволяет
выбрать тип
создаваемой
таблицы
После выбора
типа таблицы
Database Desktop представит
Вам диалоговое
окно, специфичное
для каждого
формата, в котором
Вы сможете
определить
поля таблицы
и их тип, как
показано на
рис.2.
Рис. 2: Database Desktop позволяет
задать имена
и типы полей
в таблице
Имя поля в таблице
формата Paradox
представляет
собой строку,
написание
которой подчиняется
следующим
правилам:
Имя должно
быть не длиннее
25 символов.
Имя не должно
начинаться
с пробела, однако
может содержать
пробелы. Однако,
если Вы предполагаете
в будущем переносить
базу данных
в другие форматы,
разумнее будет
избегать включения
пробелов в
название поля.
Фактически,
в целях переносимости
лучше ограничиться
девятью символами
в названии
поля, не включая
в него пробелы.
Имя не должно
содержать
квадратные,
круглые или
фигурные скобки
[], ()
или {},
тире, а также
комбинацию
символов “тире”
и “больше”
(->).
Имя не должно
быть только
символом #,
хотя этот символ
может присутствовать
в имени среди
других символов.
Хотя Paradox поддерживает
точку (.)
в названии
поля, лучше ее
избегать, поскольку
точка зарезервирована
в Delphi для других
целей.
Имя поля в таблице
формата dBase
представляет
собой строку,
написание
которой подчиняется
правилам, отличным
от Paradox:
Имя должно
быть не длиннее
10 символов.
Пробелы в имени
недопустимы.
Таким образом,
Вы видите, что
имена полей
в формате dBase
подчиняются
гораздо более
строгим правилам,
нежели таковые
в формате Paradox.
Однако, мы еще
раз хотим
подчеркнуть,
что если перед
Вами когда-либо
встанут вопросы
совместимости,
то лучше сразу
закладывать
эту совместимость
- давать полям
имена, подчиняющиеся
более строгим
правилам.
Укажем еще
правила, которым
подчиняется
написание имен
полей в формате
InterBase.
Имя должно
быть не длиннее
31 символа.
Имя должно
начинаться
с букв A-Z,
a-z.
Имя поля может
содержать
буквы (A-Z,
a-z),
цифры, знак $
и символ подчеркивания
(_).
Пробелы в имени
недопустимы.
Для имен таблиц
запрещается
использовать
зарезервированные
слова InterBase.
Следующий
(после выбора
имени поля) шаг
состоит в задании
типа поля. Типы
полей очень
сильно различаются
друг от друга,
в зависимости
от формата
таблицы. Для
получения
списка типов
полей перейдите
к столбцу “Type”,
а затем нажмите
пробел или
щелкните правой
кнопкой мышки.
Приведем списки
типов полей,
характерные
для форматов
Paradox, dBase и InterBase.
Итак, поля таблиц
формата Paradox могут
иметь следующий
тип (для ввода
типа поля можно
набрать только
подчеркнутые
буквы или цифры): Табл.
A: Типы полей
формата Paradox Alpha строка
длиной 1-255 байт,
содержащая
любые печатаемые
символы Number числовое
поле длиной
8 байт, значение
которого может
быть положительным
и отрицательным.
Диапазон чисел
- от 10-308
до 10308
с 15 значащими
цифрами $
(Money) числовое
поле, значение
которого может
быть положительным
и отрицательным.
По умолчанию,
является
форматированным
для отображения
десятичной
точки и денежного
знака Short числовое
поле длиной
2 байта, которое
может содержать
только целые
числа в диапазоне
от -32768 до 32767 Long
Integer числовое
поле длиной
4 байта, которое
может содержать
целые числа
в диапазоне
от -2147483648 до 2147483648 #
(BCD) числовое
поле, содержащее
данные в формате
BCD (Binary Coded Decimal). Скорость
вычислений
немного меньше,
чем в других
числовых форматах,
однако точность
- гораздо выше.
Может иметь
0-32 цифр после
десятичной
точки Date поле
даты длиной
4 байта, которое
может содержать
дату от 1 января
9999 г. до нашей
эры - до 31 декабря
9999 г. нашей эры.
Корректно
обрабатывает
високосные
года и имеет
встроенный
механизм проверки
правильности
даты
Time поле
времени длиной
4 байта, содержит
время в миллисекундах
от полуночи
и ограничено
24 часами @
(Timestamp) обобщенное
поле даты длиной
8 байт - содержит
и дату и время Memo поле
для хранения
символов,
суммарная
длина которых
более 255 байт.
Может иметь
любую длину.
При этом размер,
указываемый
при создании
таблицы, означает
количество
символов,
сохраняемых
в таблице (1-240)
- остальные
символы сохраняются
в отдельном
файле с расширением
.MB Formatted
Memo поле,
аналогичное
Memo, с добавлением
возможности
задавать шрифт
текста. Также
может иметь
любую длину.
При этом размер,
указываемый
при создании
таблицы, означает
количество
символов,
сохраняемых
в таблице (0-240)
- остальные
символы сохраняются
в отдельном
файле с расширением
.MB. Однако, Delphi в
стандартной
поставке не
обладает
возможностью
работать с
полями типа
Formatted Memo Graphic поле,
содержащее
графическую
информацию.
Может иметь
любую длину.
Смысл размера
- такой же, как
и в Formatted Memo. Database Desktop “умеет”
создавать
поля типа Graphic,
однако наполнять
их можно только
в приложении OLE поле,
содержащее
OLE-данные (Object Linking and
Embedding) - образы, звук,
видео, документы
- которые для
своей обработки
вызывают создавшее
их приложение.
Может иметь
любую длину.
Смысл размера
- такой же, как
и в Formatted Memo. Database Desktop “умеет”
создавать
поля типа OLE,
однако наполнять
их можно только
в приложении.
Delphi “напрямую”
не умеет работать
с OLE-полями, но
это легко
обходится
путем использования
потоков Logical поле
длиной 1 байт,
которое может
содержать
только два
значения - T
(true, истина) или
F
(false, ложь). Допускаются
строчные и
прописные
буквы +
(Autoincrement) поле
длиной 4 байта,
содержащее
нередактируемое
(read-only) значение
типа long
integer.
Значение этого
поля автоматически
увеличивается
(начиная с 1) с
шагом 1 - это
очень удобно
для создания
уникального
идентификатора
записи (физический
номер записи
не может служить
ее идентификатором,
поскольку в
Парадоксе
таковой отсутствует.
В InterBase также отсутствуют
физические
номера записей,
но отсутствует
и поле Autoincrement.
| |||||||||||||||||||||||||||||||||||||||||||