Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Delphi и базы данных.docx
Скачиваний:
33
Добавлен:
19.05.2015
Размер:
227.39 Кб
Скачать

Delphi и базы данных

Ознакомившись с основными терминами и понятиями БД, можно перейти к рассмотрению средств, имеющихся в распоряжении разработчика, создающего приложения БД при помощи Delphi. Средства Delphi, предназначенные для работы с БД, можно разделить на 2 категории: инструментарий и компоненты. Инструментарий включает в себя рад дополнительных программ, входящих в поставку Delphi и предназначенных для работы с БД. Что касается компонентов, то в VCL имеется множество специализированных компонент, предназначенных для работы с БД.

Типы БД в Delphi

Хотя Delphi и не является СУБД в классическом понимании этого термина, в частности, у нее нет собственного формата баз данных, она поддерживает как собственные сразу несколько форматов, в частности, dBase и Paradox.

Таблицы dBase являются одним из первых форматов БД, появившихся на ПК, благодаря чему с ними могут взаимодействовать многие СУБД - если и не на прямую, то по крайней мере, имея возможность импортировать и экспортировать данные в этом формате. Более того, с некоторыми оговорками, их можно просматривать и редактировать даже в электронных таблицах, например, в Excel.

Формат dBase является достаточно простым и может использовать для хранения каждой таблицы до 3 файлов:

  • dbf - основная таблица с данными;

  • dbt - BLOB-данные (этот файл появляется, если в таблице предусмотрены соответствующие поля);

  • mdx - файл с индексами.

Таким образом, dBase - это достаточно простой и универсальный формат таблиц. Это о преимуществах, из недостатков же следует отметить такие, как ограничения на имена полей в таблицах: максимальная длина - всего 10 символов, допустимы только латинские буквы и цифры. Сходные ограничения налагаются на имена самих таблиц, при этом, в лучших традициях 16-битных систем, длина имени таблицы не должна превышать 8 символов (хотя это ограничение, в общем-то, можно игнорировать при работе в Delphi под 32-разрядными системами). Но куда более существенными недостатками являются отсутствие автоматического контроля целостности данных или связей, прав доступа, а так же ограничения на поддерживаемые типы данных, ключи, индексы и т.д. Все это делает данный формат недостаточно конкурентоспособным.

Другой формат, Paradox, появился позже и, пожалуй, является одним из наиболее развитых форматов, применяемых в локальных БД. Основными отличиями этого формата от dBase являются:

  • возможность использования практически любых символов для названий полей, а так же лимит в 25 символов, а не в 10;

  • большее количество поддерживаемых типов данных, включая автоинкрементный тип;

  • поддержка контроля целостности данных и возможность организации проверки вводимых данных;

  • возможность защиты таблиц паролем и определения прав доступа к данным.

Благодаря таким достоинствам, формат Paradox используется гораздо чаще, по крайней мере, применительно к Delphi. Кроме того, большой набор типов данных позволяет эффективно подбирать нужный тип для хранения данных. Полный перечень поддерживаемых Paradox типов данных и их символьные обозначения в программе Database Desktop приведены в таблице 18.1.

Таблица 18.1. Типы данных в Paradox 7

Тип

Обозначение

Описание

Alpha

A

Строка длиной не более 255 символов (аналог ShortString)

Number

N

Число с плавающей точкой (аналог Double)

Money

$

То же, что и Number, но при выводе сопровождается обозначением денежного знака

Short

S

Малое целое (аналог SmallInt)

LongInteger

I

Целое (аналог LongInt)

BCD

#

Число в двоично-десятичном формате

Date

D

Дата в диапазоне от 1 января 9999г. до н.э. до 31 декабря 9999г.

Time

T

Время

Timestamp

@

Дата и время

Memo

M

Строка произвольной длины. Первые 240 символов хранятся в файле основной таблице, остальные – в файле с BLOB-данными

Formatted Memo

F

То же, что и Memo но для RTF-текста

Graphic

G

Графическое изображение в формате BMP, PCX, TIFF, GIF или EPS. При выводе преобразуется в BMP, хранится в файле с BLOB-данными

OLE

O

Произвольные данные, которые поддерживаются через OLE. Хранятся в файле в BLOB-данными

Logical

L

Логическое значение (TRUE или FALSE)

Autoincrement

+

Автоинкрементное поле. При добавлении новой записи значение этого поля автоматически увеличивается на 1

Binary

B

Двоичная информация (произвольная последовательность байтов). Подобно Memo, первые 240 байт хранятся в файле основной таблицы, остальные – в BLOB

Bytes

Y

Двоичная информация (произвольная последовательность байтов) длиной не более 255 символов

Что касается файлов, используемых для хранения информации, то в Paradox их может быть использовано достаточно большое количество:

  • db - файл с основными данными таблицы;

  • mb - файл с BLOB-данными;

  • px - файл с первичным индексом (ключом);

  • xg? и yg? - файлы со вторичными индексами (вместо ? будет порядковый номер индекса);

  • val - файл с информацией для проверки данных и целостности ссылок.

Таким образом, количество файлов, ассоциированных с каждой таблицей, может достигать десятков, если использовать множество вторичных индексов. Пожалуй, это и есть единственный существенный недостаток формата Paradox. Но поскольку преимуществ у него гораздо больше, то в Delphi именно Paradox предлагается использовать по умолчанию, и потому этот формат называется не Paradox, а Standard.

Инструменты для работы с бд

Помимо поддержки БД в самой среде Delphi, в состав поставки Delphi входит ряд дополнительных инструментов, служащих для обеспечения работы с БД. Прежде всего, это BDE - Borland Database Engine, представляющий собой набор системных библиотек и драйверов, предназначенных для взаимодействия БД и приложений, разрабатываемых в Delphi.

Кроме того, имеется рад дополнительных приложений, вызвать которые можно самостоятельно (из программной группы Delphi), или из IDE:

  • BDE Administrator - утилита для настройки различных параметров BDE, настройки драйверов баз данных, создания и удаления псевдонимов БД. Эта программа так же встраивается в системную панель управления;

  • Database Desktop - программа для создания, просмотра и редактирования отдельных таблиц и запросов;

  • Data Pump - программа для переноса данных между БД;

  • Database Explorer - программа-проводник для иерархического просмотра и редактирования БД. В версиях Enterprise и Architect устанавливается более гибкая и функциональная версия - SQL Explorer;

  • SQL Monitor - программа для отслеживания прохождения запросов к удаленным серверам БД (только Enterprise и Architect);

  • SQL Builder - приложение для конструирования SQL-запросов (вызывается при обращении к соответствующим компонентам в Delphi IDE, только Enterprise и Architect);

  • InterBase Server - субд InterBase, включая клиентскую и серверную части (только Enterprise и Architect);

  • dbExpress - набор драйверов для доступа к SQL-СУБД, включая InterBase, DB2, Oracle, MSSQL и MySQL. В VCL для этих целей используется одноименный набор компонентов.

В ранних версиях Delphi вместо dbExpress использовались SQL Links, но, начиная с Delphi 7, эта система считается устаревшей. Как и другие SQL-ориентированные компоненты, dbExpress и SQL Links имеются только в версиях Enterprise и Architect.

ПРИМЕЧАНИЕ Очевидно, что многие инструменты, прежде всего, ориентированные на использование с промышленными БД, имеются в промышленных же (Enterprise) вариантах поставки Delphi стоимостью около 2-3 тыс. долл. Впрочем, рассмотрение подобных нюансов в этой книге мы опустим, тем более что для рассматриваемых примеров SQL-ориентированные СУБД нам не понадобятся.

Помимо перечисленных инструментов, в Delphi имеется множество компонент, имеющих самое непосредственное отношение к базам данных. Прежде всего, это группы Data Access, Data Controls и BDE. К этой же категории относятся группы ADO, InterBase, WebSnap и некоторые другие, однако все их рассматривать не представляется ни возможным, ни необходимым.

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

ВНИМАНИЕ Следует учитывать, что используемые драйвера СУБД, равно как и BDE в обязательном порядке должны присутствовать на тех ПК, на которых будет выполняться разрабатываемое приложение БД.

Помимо средств, входящих в поставку Delphi необходимо упомянуть и о технологиях, имеющихся для этих целей в Windows. Так, механизм доступа к данным ADO, основанный на COM обеспечивает универсальный механизм доступа к данным из приложений. Использование ADO позволяет отказаться от установки BDE и поставки дополнительных библиотек на ПК конечного пользователя разрабатываемого приложения БД. Ряд компонент, в частности, компоненты из групп dbExpress и InterBase так же позволяют работать с БД в обход BDE. Однако отказ от BDE и использование специализированных компонентов автоматически увеличивает сложность разработки приложений баз данных, поскольку BDE по отношению к различным СУБД, как и VCL по отношению Windows API, сглаживает многие острые углы, проявляющиеся при работе с БД.

BDE и BDE Administrator

Несмотря на то, что в последнее время компания Borland усиленно продвигает SQL-ориентированный подход для разработки БД и агитирует за использование соответствующих компонентов (в частности, dbExpress), BDE остается популярным средством для разработки относительно несложных БД. Такому положению вещей способствует не только удобство и простота этой технологии, но и большое количество приложений, созданных с использованием BDE, поддержку и развитие которых требуется осуществлять и сегодня.

Для настойки параметров БД, поддерживаемых BDE, а так же для создания псевдонимов (Aliases) к базам данных, используют специальную утилиту, входящую в поставку Delphi - BDE Administrator. Рабочая область этой программы представляет собой блокнот из 2 страниц - Databases и Configuration (рис. 18.1).

Рис. 18.1. Окно BDE Administrator с открытой страницей Databases

На странице Databases расположен список имеющихся псевдонимов к БД. Сразу после установки Delphi и BDE создается несколько псевдонимов, в частности, DBDEMOS, DefaultDD и IBLocal. А чтобы создать новый псевдоним, достаточно из меню Object выбрать пункт New. В результате откроется окно, в котором вы сможете выбрать тип СУБД. По умолчанию предлагается Standard, что обычно подразумевает использование Paradox в качестве драйвера для создаваемой БД. После этого в списке появится новый элемент, который будет назван Standard1, а справа, в области определения свойств (Definition), будут выведены все доступные для редактирования параметры. Применительно к стандартному для Delphi типу это будет собственно тип (Type), драйвер СУБД (Default driver), режим преобразования вещественных чисел (Enable BCD) и каталог, в котором расположены файлы БД (Path). Поскольку Delphi в качестве "своего" формата поддерживает не только Paradox, то в качестве драйвера можно указать так же форматы dBase, FoxPro и ASCII (текстовый формат).

После создания нового псевдонима можно изменить его название - проще всего это сделать сразу же после того, как он будет создан - пока курсор редактирования находится непосредственно на нем. Позже можно будет изменить его, выбрав пункт Rename из меню Object.

Допустим, что наш псевдоним будет называться DATA1, а в качестве пути укажем каталог Data на диске C. Таким образом, если нам в будущем понадобится обратиться к БД типа Paradox, расположенной в каталоге C:\Data, то нам будет достаточно указать лишь ее псевдоним, а остальную информацию BDE предоставит приложению автоматически.

Вторая страница BDE Administrator - Configuration предназначена для настроек как отдельных драйверов СУБД (группа Drivers), так и для общих для всех СУБД системных переменных (группа System). Драйвера, в свою очередь, подразделяются на поддерживаемые BDE напрямую (Native) и посредством ODBC (Open Database Connectivity - совместимость открытых баз данных).

Среди настроек, в первую очередь следует выделить опцию Langdriver, имеющуюся как у системных настроек (группа INIT, см. рис. 18.2), так и для каждой СУБД в отдельности. Для корректной работы с кириллицей следует установить значение "Pdox ANSI Cyrillic", соответствующее кодировке Windows-1251, как в общих настройках (INIT), так и для используемого драйвера СУБД (например, Paradox).

Рис. 18.2. Системные настройки в BDE Administrator

После произведения всех необходимых настроек следует перезапустить приложения, использующие BDE для того, чтобы новые параметры вступили в силу. Что касается созданных псевдонимов, то они становятся доступными сразу же после создания (вернее, сразу после того, как вы сохраните конфигурацию, нажав на кнопку Apply или выбрав соответствующий пункт из меню Object).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]