Механизм взаимодействия программы на Delphi с базами данных

Рис.6.1. Функции BDE

Как видно из рисунка основу связи любого приложения с базой данных составляет BDE- процессор баз данных фирмы Borland (Inprise). BDE представляет собой набор DLL библиотек, драйверов, файлов конфигурации и дополнительных программ DataBase DeskTop, DataBase Explorer и BDE Administrator. Следует иметь в виду, что при поставке готовой программы написанной на Delphi для работы с базами данных заказчику придется поставлять и процессор BDE. Это легко сделать с помощью программы InstallShield Express, которая входит в состав программ, поставляемых вместе с Delphi. Однако, начиная с версии Delphi 5.0, в палитре компонентов есть страничка ADO, компоненты которой используют напрямую процессор баз данных фирмы MicroSoft – ODBC (Open Data Base Connection), который входит как составная часть в систему Windows. В данной работе мы не будем затрагивать создание клиент – серверных приложений и использование языка структурированных запросов SQL.

Непосредственно с базой данных связаны компоненты Ttable или Tquery. Компоненты TdataSource являются промежуточным буфером между ними и визуальными компонентами, которые выводят информацию на экран и позволяют интерактивно изменить ее.

Основу связи программы с базой данных составляет компонент TTable. Использование API BDE возможно через указатели на курсор и базу данных. Записи в наборе данных можно селектировать и ограничивать при помощи свойств Filter, Filtered и Filter0ptions, создающих фильтр, ограничивающий набор данных по значениям данных. Методы SetRangeStart, SetRangeEnd, SetRange, ApplyRange, EditRangeStart, EditRangeEnd создают специальный диапазон включаемых в набор данных записей, отбор в диапазон проводится по задаваемым граничным значениям любых полей набора данных. Поиск нужной записи можно осуществлять методами Lookup или Locate (достаточно просто и не очень быстро) или, используя существующие в таблице базы данных индексы, методом FindKey (сложнее, но очень быстро). От предков компонент унаследовал инструменты для работы с закладками (методы GetBookmark, FreeBootanark, GotoBookmark). Работа с полями осуществляется целой группой свойств и методов, среди которых особое место занимает свойство Fields, представляющее собой индексированный список всех полей набора данных. Использование индексов обеспечено свойствами indexName, indexFields, IndexFieldNames, IndexFiles. Свойства MasterSource, MasterField, IndexName дают возможность установить отношение "один ко многим" с другой таблицей. Механизм навигации по набору данных унаследован от класса TDataSet. Очень полезны в практическом использовании методы и свойства для работы с буфером вносимых изменений (свойства CachedUpdates, UpdateRecordTypes, методы ApplyUpdates, CancelUpdates, ConmitUpdate, RevertRecord). От класса TDataSet унаследован обширный набор методов - обработчиков событий, позволяющий решать практически любые задачи по управлению набором данных. Область применения компонента не зависит от типа приложения (одноуровневое или многоуровневое). В данном практикуме не приводятся описания всех классов объектов, используемых при работе с базами данных, это выходит за рамки возможностей методического пособия. В справочной системе Delphi можно найти подробное описание любого из классов.