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

Таблицы dBase как один из первых форматов баз данных, появившихся на персональных компьютерах. Характеристика файлов, используемых для хранения информации, их типы и предъявляемые требования. Инструменты, используемые в управлении базами данных.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 30.10.2015
Размер файла 34,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

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

Введение

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

1. Типы БД в 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 приведены в таблице.

Типы данных в 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

2. Инструменты для работы с БД

Помимо поддержки БД в самой среде 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, сглаживает многие острые углы, проявляющиеся при работе с БД.

3. BDE и BDE Administrator

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

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

На странице 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), так и для каждой СУБД в отдельности. Для корректной работы с кириллицей следует установить значение «Pdox ANSI Cyrillic», соответствующее кодировке Windows-1251, как в общих настройках (INIT), так и для используемого драйвера СУБД (например, Paradox).

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

4. Создание таблиц в Database Desktop

Для работы с таблицами при создании приложения БД можно использовать приложение Database Desktop, входящее в поставку Delphi. С помощью Database Desktop можно создавать и реструктуризировать таблицы, вносить в них новые записи, а так же создавать запросы.

Для создания новой таблицы следует выбрать пункт меню File > New > Table. При этом будет предложено выбрать тип создаваемой страницы, по умолчанию предлагается формат Paradox 7, и именно его мы и будем использовать. Сразу после подтверждения выбранного типа откроется окно определения структуры таблицы, в котором и производятся все необходимые действия, связанные с созданием и определением параметров таблицы, включая ее поля, индексы, пароли, условия и ограничения на значения и для ссылочной целостности.

Как нам уже известно, программа-минимум для создания таблицы реляционной СУБД заключается в создании одного поля. Имя поля указывают в столбце Field Name, а его параметры - в Type (тип) и Size (размер). Возможные типы данных для таблиц Paradox были приведены в таблице 18.1, что касается размеров, то они актуальны, в основном, только для типов Alpha и Bytes. Для BLOB-типов данных размеры так же можно указывать, но для них этот размер будет определять не ограничение размера самих данных, а то, сколько байт должно храниться в основном файле таблицы. Наконец, в графе Key можно отметить поле или поля, являющиеся ключевыми, по которым будет создан первичный индекс. Кроме того, можно сделать целый ряд дополнительных операций, в том числе и над таблицей в целом, для чего в расположенном справа ниспадающем списке можно выбрать один из следующих пунктов:

· Validate Checks (проверка правильности) - задает ограничения значений для текущего поля;

· Table Lookup (таблица выбора) - задает правила совпадения вводимых значений со значениями из другой таблицы для поддержки целостности;

· Secondary Indexes (вторичные индексы) - определяет вторичные индексы для таблицы;

· Referential Integrity (ссылочная целостность) - определяет условия для проверки ссылочной целостности;

· Password Security (пароли) - определяет пароли для разграничения доступа к полям таблицы;

· Table Language (язык) - определяет кодовую страницу таблицы, значение по умолчанию берется из настроек BDE;

· Depended Tables (зависимые таблицы) - показывает список таблиц, зависимых от текущей таблицы по линии ссылочной целостности.

Наиболее часто возникает необходимость именно в задании индексов. В принципе, для таблиц Paradox иногда достаточно указать лишь первичный индекс, отметив нужное поле (или поля) в графе Key. Но если возникнет необходимость определить дополнительные индексы, или если за основу был взять другой формат, скажем, dBase, ключевого индекса в котором не предусмотрено, то следует выбрать из списка пункт Secondary Indexes, после чего нажать на кнопку Define. В открывшемся окне определения вторичных индексов (Define Secondary Index) из списка имеющихся в таблице полей, который отображен справа, выбирается поле или поля, по которым должен быть создан новый индекс. Внизу окна расположена группа из 4 опций, позволяющих определить тип создаваемого индекса. В частности, опция Unique указывает на то, что индекс требует уникальные значения для составляющих его полей, опция Maintained определяет, должен ли индекс обновляться при каждом изменении в таблице, а опция Case Sensitive отвечает за распознавание регистра символов в текстовых строках. Ну и оставшаяся опция - Descending - указывает на то, что сортировка индекса должна производиться не по возрастанию, как это принято по умолчанию, а по убыванию.

После того, как поля и опции будут выбраны, надо будет нажать на кнопку ОК, после чего программа попросит вас ввести имя индекса. Указав имя и вновь нажав ОК, вы увидите новый индекс в списке. Если понадобится изменить ранее определенный индекс, то достаточно будет выбрать его в списке и нажать на кнопку Modify. Если же какой-либо индекс окажется ненужным, то его можно удалить, нажав на Erase.

Для примера создадим простую таблицу клиентов. Она будет состоять всего из 2 полей - номера (назовем это поле CUST_ID) и имени (CUST_NAME). Для первого поля установим автоинкрементный тип (+) и сделаем его ключевым, поставив двойным щелчком мышки звездочку в графе Key. Второе поле должно быть текстовым (A), а его размер можно ограничить 40 символами, для чего в графе Size введем число 40.

Итак, когда все поля таблицы будут определены, индексы заданы, и все остальные шаги по определению структуры таблицы так же выполнены, останется лишь сохранить новую таблицу, для чего следует нажать на кнопку Save As. В диалоговом окне сохранения таблицы обратите внимание на список Alias, при помощи которого возможна быстрая навигация между имеющимися БД. Применительно к только что созданной таблице в списке псевдонимов выберем DATA1, а в качестве имени файла (оно же будет именем таблицы) используем слово customer.

Совет

Если вы создаете БД, состоящую из множества однотипных таблиц, то полезно знать, что, нажав на кнопку Borrow и указав таблицу-прототип, можно импортировать ее структуру во вновь создаваемую таблицу, после чего останется лишь внести необходимые корректировки - и новая таблица готова.

После создания и сохранения таблицы ее можно открыть для внесения записей, а так же для изменения структуры. Для этого следует воспользоваться меню File ' Open ' Table и выбрать таблицу в окне открытия файла. Опять-таки, как и при сохранении, здесь будет список псевдонимов, при помощи которого можно быстро выбрать каталог с нужной БД.

Открыв таблицу, вы увидите ее в форме представления данных. Если таблица не является только что созданной и уже содержит какую-либо информацию, то она так же будет видна.

Примечание

Довольно часто, особенно при работе в среде Windows 2000/XP, программа Database Desktop не отображает символы кириллицы. Для исправления этого досадного обстоятельства запустите файл cyr_fix, находящийся в каталоге Tools\DBD_Patch.

Чтобы изменять данные в таблице или вносить в нее новые записи, следует переключиться в режим редактирования, для чего можно нажать на кнопку-триггер Edit Data на панели инструментов, или выбрать одноименный пункт из меню Table. Если открыто несколько таблиц одновременно, то режим правки будет включен только для той таблицы, что была на переднем плане в момент включения этого режима. Вернуться к режиму просмотра (чтобы ненароком не повредить имеющиеся данные) можно, отжав триггер (или выбрав Table ' View Data).

Откроем только что созданную таблицу Customer и заполним ее данными, для чего достаточно будет вводить данные лишь в столбец поля CUST_NAME, поскольку автоинкрементное поле CUST_ID будет заполняться автоматически. Важно отметить, что правка таблицы, как в Database Desktop, так и любым другим способом, приводит к немедленному изменению ее действительного содержания. Из этого следует, что, во-первых, операция сохранения, привычная по электронным таблицам, здесь не уместна (все сохраняется сразу после вода), а во-вторых, надо быть аккуратным, так как отменить правку не получится.

Кроме правки содержащихся в таблице данных, при помощи Database Desktop можно посмотреть структуру таблицы, а также изменить ее. Для этого в меню Table имеются пункты Info Structure (просмотр структуры) и Restructure (изменение структуры). И в том и в другом случае будет открыто уже знакомое нам окно определения структуры таблицы, с той лишь разницей, что для просмотра оно будет открыто в режиме «только для чтения».

Внося изменения в структуру таблицы, уже содержащую какие-либо данные, следует помнить, что это может привести к потере части информации. Например, если изначально для какого-либо текстового поля был задан размер 100 символов, то уменьшение его размера до 60 символов приведет к тому, что информация будет «обрезана» по 60 символу, а последние 40 окажутся безвозвратно утерянными. Точно так же часть информации может быть утеряна, например, при изменении поля вещественного типа на целое, длинного целого на короткое и т.д. Правда, если подобная операция производится в Database Desktop, то при этом вам будет выдано соответствующее предупреждение. Кроме того следует учитывать, что в момент изменения структуры, никакое другое приложение не должно использовать данную таблицу.

Наконец, рассмотрим еще один вариант правки - изменение имени самой таблицы. Несмотря на то, что эту операцию, казалось бы, можно выполнить из файловой системы, переименовав файлы, используя проводник Windows, такой шаг приведет к потере связанной информации, поскольку имя таблицы хранится во всех связанных с ней файлах (фалы индексов, BLOB-данных и т.д.). Поэтому для переименования таблицы следует открыть ее для реструктуризации в Database Desktop и нажать на кнопку Save As, после чего выбрать новое имя. В результате будут корректно сохранены как основной файл данных таблицы, так и вся связанные с ним файлы индексов, метаданных и т.д. Исходные файлы при этом так же останутся на диске - вот их и можно будет удалить средствами файловой системы.

5. Поддержка BDE в VCL

Для создания приложений, работающих с БД через BDE, в VCL предусмотрена группа компонентов, расположенная на закладке BDE палитры компонентов. Из представленных 8 компонентов для нас сейчас наибольший интерес представляют 2, а именно Database и Table.

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

Свойства компонента Database

Свойство

Тип

Описание

AliasName

String

Определяет псевдоним BDE для подключения

Connected

Boolean

Определяет, установлено или нет соединение с БД

DatabaseName

String

Определяет имя БД, ассоциированное с данным компонентом

Directory

String

Определяет рабочий каталог для БД Paradox или dBase

DriverName

String

Определяет имя драйвера BDE для данной БД

Exclusive

Boolean

Включает монопольный доступ к БД

InTransaction

Boolean

Указывает, выполняется ли в данный момент транзакция

KeepConnection

Boolean

Определяет, должно ли приложение оставаться подключенным к БД, когда активных соединений нет

Params

TStrings

Определяет список дополнительных параметров для псевдонима BDE

SessionName

String

Определяет имя сессии для данного компонента

ReadOnly

Boolean

Включает режим доступа к данным только на чтение

Пожалуй, наиболее важным свойством является DatabaseName: указав в качестве значения этого свойства один из уже определенных в BDE псевдонимов, мы получим готовый к использованию компонент. Еще одно свойство - Connected - отвечает за непосредственную установку связи с БД. Таким образом, указав в качестве значения свойства DatabaseName «DATA1», и установив свойство Connected в истину, мы подключимся к БД.

Довольно интересной особенностью компонента Database является возможность создания псевдонимов БД, действующих в рамках создаваемого приложения. Прежде всего, можно указать в качестве значения свойства Alias то же значение DATA1, выбрав его из списка, а в качестве DatabaseName указать какое-либо произвольное значение (например, MyData). Таким образом, для других компонент, имеющих свойство DatabaseName можно будет указывать MyData в качестве значения этого свойства.

В то же время, если бы у нас не был определен псевдоним DATA1, или же по каким-либо причинам нам не хотелось бы его использовать, то мы могли бы «с нуля» создать псевдоним для данного приложения. Для этого потребуется указать те же параметры, что и при создании псевдонима средствами BDE Administrator, а именно тип драйвера, путь к БД и собственно псевдоним. Код получится примерно таким:

Database1. DatabaseName:='MyData1'; // псевдоним Database1. DriverName:='STANDARD'; // драйвер Paradox Database1. Connected:=true; // активируем компонент Database1. Directory:='C:\Data'; // устанавливаем путь к файлам данных

Вместе с тем такое свойство, как DatabaseName предпочтительно все же задавать не во время выполнения, а в режиме разработки через инспектор объекта. Это позволит ссылаться на БД из других компонент, указывая в их свойстве DatabaseName, так же уже на этапе визуального проектирования приложения.

Одним из таких компонент, имеющим свойство DatabaseName, как раз и является Table. Если Database представляет собой базу данных в целом, то Table - это представление единичной таблицы из БД. Следует сразу отметить, что Table может обращаться к таблицам БД как через посредство компонента Database, ссылаясь на определенное в нем свойство DatabaseName, так и напрямую, если в свойстве DatabaseName компонента Table указать один из определенных в BDE псевдонимов. Разумеется, компонент Table имеет и другие свойства - они приведены в таблице.

Свойства компонента Table

Свойство

Тип

Описание

Active

Boolean

Определяет, должно ли быть установлено подключение к базе данных

CanModify

Boolean

Указывает, может ли приложение изменять содержимое таблицы Paradox или dBase

DatabaseName

String

Определяет имя БД, ассоциированное с данным компонентом

DataSource

TDataSource

Определяет имя объекта источника данных для использования данной таблицы в качестве подчиненной при связи типа главный-подчиненный

DefaultIndex

Boolean

Определяет, должно ли производиться упорядочивание записей таблицы по первичному индексу

Exclusive

Boolean

Включает монопольный доступ к данной таблице Paradox или dBase

Exists

Boolean

Указывает, существует ли данная таблица в БД

FieldDefs

TFieldDefs

Указывает на список полей, определяющих данные

Filter

String

Определяет условие, по которому будет происходить выборка полей для показа

Filtered

Boolean

Определяет, является ли фильтр включенным

FilterOptions

TFilterOptions

Определяет набор флагов для фильтра

IndexDefs

TIndexDefs

Предоставляет информацию о индексах таблицы

IndexFieldCount

Integer

Указывает на количество полей, использованных в текущем индексе

IndexFieldNames

String

Определяет список полей, используемых в качестве индекса (через запятую)

IndexFields

array of Tfield

Список индексов таблицы

IndexFiles

TStrungs

Определяет список файлов с индексами для таблиц dBase

IndexName

String

Определяет вторичный индекс, по которому должно производиться упорядочивание (вместо первичного)

MasterFields

String

Определяет список полей (через запятую) в главной таблице, по которым должна устанавливаться связь типа главный-подчиненный

MasterSource

TDataSource

Определяет имя объекта источника данных для использования данной таблицы в качестве главной при связи типа главный-подчиненный

SessionName

String

Определяет имя сессии для данного компонента

ReadOnly

Boolean

Определяет режим доступа к таблице

TableName

String

Определяет имя таблицы (имя файла для таблиц dBase или Paradox)

TableType

TTableType

Определяет тип таблицы. Может принимать значения ttDefault (тип определяется по расширению файла), ttParadox, ttDBase, ttFoxPro и ttASCII

Здесь следует оговориться, что на самом деле некоторые свойства лишь унаследованы компонентом Table от своих предков. Соответственно, мы можем их встретить и в других компонентах, связанных с БД. В частности, это свойство Active, унаследованное от класса TDataSet - общего предка всех БД-компонент, предоставляющих непосредственных доступ к данным. От этого же предка происходит и свойство FieldDefs, позволяющее самостоятельно настроить список обрабатываемых полей. А группа свойств, связанных с отбором данных (Filter, Filtered и FilterOptions) являются частью класса TBDEDataSet - наследника класса TDataSet, ориентированного на работу с базами данных посредством драйверов BDE.

Остановимся на свойстве FilterOptions, которое содержит 2 флага:

· foCaseInsensitive - строки будут сравниваться без учета регистра символов;

· foNoPartialCompare - символ «звездочка» (*) в поле фильтра будет интерпретироваться именно как символ, а не как шаблон подстановки.

Свойства фильтров используются только при работе с BDE, поскольку в SQL-ориентированных компонентах подразумевается, что отбор данных будет производиться при помощи запросов SQL, что, в общем-то, вполне естественно, учитывая предназначение и возможности самого SQL.

Примечание

Еще одно важное свойство - FieldDefs, являющееся списком объектов - полей TField, будет рассмотрено вместе с самими полями позже, в главе, посвященной непосредственной работе с данными.

Для использования таблицы достаточно указать значения для свойств DatabaseName и TableName. Например, если продолжить пример с созданием псевдонима для компонента Database, то после последней строчки кода, устанавливающей значение для свойства Directory, достаточно добавить:

Table1. DatabaseName:='MyData1'; // устанавливаем значение БД на псевдоним Table1. TableName:='Customer'; // в имени таблицы расширение не обязательно Table1. Active:=true; // делаем таблицу подключенной

Дальнейшее использование компонента Table чаще всего сводится к тому, что он, представляя собой таблицу БД, позволяет производить над ней ряд манипуляций, включая редактирование данных, перемещение по записям и т.д. Для этого используются методы, которых у компонента Table, с учетом всех наследований, имеется около сотни. Впрочем, многие из них нельзя назвать повседневно необходимыми. Из наиболее востребованных можно отметить методы First и Last, Next и Prior, используемые для навигации по записям таблицы, а так же Append, Delete и Insert, которые используются для добавления и удаления записей. Следует отметить, что все эти методы являются унаследованными от класса TDataSet, что говорит о том, что они имеются и у множества других предназначенных для работы с БД компонент.

6. Альтернативы BDE

Как уже было сказано, Borland не считает BDE вполне современным и прогрессивным механизмом работы с БД. В качестве непосредственной замены BDE предлагается dbExpress - совокупность драйверов и компонентов, работающих с соединениями, транзакциями и запросами. С СУБД dbExpress общается посредством драйверов, которые для получения данных используют SQL. При этом на стороне клиентского приложения данные не кэшируются, что означает использование однонаправленных курсоров и невозможность непосредственной правки таблиц. Впрочем, технология dbExpress в любом случае не предназначена для работы с локальными БД. Среди поддерживаемых dbExpress СУБД можно отметить DB2, Oracle, MS SQL и MySQL. Разумеется, имеется поддержка и фирменной СУБД Interbase.

Впрочем, использование dbExpress для Interbase - не самое лучшее решение: дело в том, что в Delphi имеется еще одна технология, вернее - набор компонент, реализующих непосредственное взаимодействие с СУБД Interbase - IB Express. На палитре компонентов они находятся на закладке InterBase. Эти компоненты реализуют все возможности, имеющиеся у BDE, а так же позволяют использовать специфические для СУБД Interbase возможности, как-то хранимые процедуры и т.д. Кроме того, имеется набор компонентов InterBase Admin, при помощи которых можно производить манипуляции над самой СУБД Interbase.

Наконец, в Delphi предусмотрен еще одни основной механизм доступа к данным, а именно - ADO, компоненты которого расположены на одноименной закладке палитры компонентов. В общем и целом ADO можно рассматривать как вариант BDE в исполнении Microsoft. Правда, ADO общается с БД через интерфейс COM, что, возможно, не так оптимально, как работа напрямую из BDE (для случая с поддерживаемыми BDE СУБД), но при этом в качестве преимущества мы имеем то, что COM уже присутствует на любом Windows-ПК, в то время как BDE необходимо устанавливать отдельно. Собственно говоря, это и есть преимущество ADO над BDE, подобно всем остальным случаям с приложениями Microsoft, входящим в состав в Windows.

В любом случае, охватить все возможные пути работы с базами данных, предусмотренные в Delphi, в рамках настоящего издания не представляется возможным, особенно если учитывать тот факт, что помимо названных технологий, входящих в состав Delphi, имеются еще и альтернативные разработки. Поэтому в дальнейшем мы сосредоточим свое внимание на BDE, как на наиболее универсальном и широко распространенном варианте. Вместе с тем, мы рассмотрим в общих чертах работу с БД при помощи запросов на SQL, поскольку подобный подход приемлем для любых ныне встречающихся технологий доступа к данным, включая BDE, dbExpress, IB Express и ADO.

Размещено на Allbest.ru


Подобные документы

  • Системы управления базами данных в медицине. Основные идеи, которые лежат в основе концепции базы данных. Требования, предъявляемые к базам данных и системе управления базами данных. Архитектура информационной системы, организованной с помощью базы данных

    реферат [122,5 K], добавлен 11.01.2010

  • Автоматизированные базы данных в учебном процессе. Создание базы данных для МОУ СОШ № 12 с целью помощи в обеспечении централизованного управления, хранения информации об учениках. Требования к программе, условия эксплуатации. Программный код базы данных.

    дипломная работа [2,0 M], добавлен 25.03.2014

  • Формы представляемой информации. Основные типы используемой модели данных. Уровни информационных процессов. Поиск информации и поиск данных. Сетевое хранилище данных. Проблемы разработки и сопровождения хранилищ данных. Технологии обработки данных.

    лекция [15,5 K], добавлен 19.08.2013

  • Алгоритмы обработки массивов данных. Система управления базами данных. Реляционная модель данных. Представление информации в виде таблицы. Система управления базами данных реляционного типа. Графический многооконный интерфейс.

    контрольная работа [2,8 M], добавлен 07.01.2007

  • Системы управления базами данных: сущность и характеристика. Типы данных и свойства полей СУБД Access. Объекты базы данных: таблицы, схемы данных, формы, запросы, отчеты. Разработка и проектирование базы данных "Продажи книг" в среде Microsoft Access.

    курсовая работа [1,8 M], добавлен 04.02.2013

  • Современные базы данных – многофункциональные программные системы, работающие в открытой распределенной среде изучении администрирования базы данных. Способы организации внешней памяти баз данных. Системы управления базами данных для хранения информации.

    курсовая работа [185,6 K], добавлен 07.12.2010

  • Понятие базы данных, их цели и задачи, требования к БД; система управления базами данных. Файловые системы: именование и структуры файлов, программное обеспечение. Уровни абстракции в СУБД, функции абстрактных данных. Экспертные системы и базы знаний.

    презентация [301,6 K], добавлен 17.04.2013

  • Типы оборудования, относящиеся к компьютерной технике. Состав системного блока и периферийные устройства. Классификация программного обеспечения. Требования, предъявляемые к системам управления базами данных. Задачи и этапы проектирования баз данных.

    контрольная работа [4,1 M], добавлен 18.02.2014

  • Базы данных с двумерными файлами и реляционные системы управления базами данных (СУБД). Создание базы данных и обработка запросов к ним с помощью СУБД. Основные типы баз данных. Базовые понятия реляционных баз данных. Фундаментальные свойства отношений.

    реферат [57,1 K], добавлен 20.12.2010

  • Основные виды баз данных. Система управления базами данных. Анализ деятельности и информации, обрабатываемой в поликлинике. Состав таблиц в базе данных и их взаимосвязи. Методика наполнения базы данных информацией. Алгоритм создания базы данных.

    курсовая работа [3,1 M], добавлен 17.12.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.