Переносимые приложения баз данных
Переносимые приложения баз данных
В Windows среда Delphi обеспечивает программисту три пути для доступа к информации, содержащейся в базах данных;
- ActiveX Data Objects (ADO);
- Borland Database Engine (BDE);
- InterBase Express.
Эти три метода не применяются в Kylix. Вместо них вы можете использовать компоненты dbExpress, обеспечивающие новую межплатформенную технологию доступа к данным, которая будет доступна и в Windows при использовании Delphi 6.
Прежде чем перенести приложения баз данных из Windows в Linux, вы должны понять отличия Между использованием dbExpress и механизмом доступа к данным, который вы применяли в Windows. Эти отличия существуют на нескольких уровнях.
На самом низком уровне имеется механизм, обеспечивающий связь между вашим приложением и сервером баз данных. Это может быть клиентская часть программного обеспечения ADO, BDE или InterBase. Этот слой достаточно легко заменяется dbExpress, который содержит драйверы для работы с запросами SQL.
На низком уровне вы устанавливаете на форме компоненты, которые будут использоваться для работы с наборами данных. Эти компоненты включают компонент соединения с базой данных, который обеспечивает подключение к серверу базы данных, и компонент набора данных, который представляет собой выборку данных из таблиц базы данных. Несмотря на то, что имеются некоторые достаточно важные отличия, они являются наименее заметными на данном уровне.
На уровне интерфейса пользователя также имеются некоторые отличия. Компоненты CLX, предназначенные для отображения данных, разработаны таким образом, чтобы по возможности быть наиболее похожими на соответствующие компоненты Windows.
Рассмотрим эти отличия более подробно.
Отличия в dbExpress
В Linux dbExpress управляет соединением с сервером базы данных. dbExpress состоит из набора небольших драйверов, которые поддерживают набор наиболее используемых интерфейсов. Каждый драйвер является файлом библиотеки разделяемых объектов (so), который может быть присоединен к вашему приложению. Так как dbExpress был разработан как межплатформенный набор
драйверов, он доступен в среде Windows как набор динамически присоединяемых библиотек (dll).
Как и любой другой слой доступa к данным, dbExpress требует наличия клиентского программного обеспечения, которое поставляется разработчиком базы данных. dbExpress использует специфичный для базы данных драйвер и два конфигурационных файла: dbxconnections и dbxdrivers. Это значительно меньше, чем вам необходимо в BDE, который требует главную библиотеку Borland Database Engine (Idapi32.dll) плюс специфичный драйвер для базы данных и несколько других файлов-библиотек для поддержки базы данных.
Ниже перечислены основные отличия между dbExpress и другими слоями доступа к данным:
- dbExpress обеспечивает более простой и быстрый доступ к удаленным базам данных. В результате вы можете ожидать от своего приложения быстрой скорости доступа к данным;
- dbExpress может обрабатывать запросы и хранимые процедуры, но не поддерживает концепцию открытых таблиц;
- dbExpress возвращает только однонаправленные указатели;
- dbExpress не содержит встроенную поддержку обновления данных, кроме способности выполнения запросов INSERT, DELETE и UPDATE;
- dbExpress не делает кэширования метаданных;
- dbExpress выполняет исключительно запросы пользователя, тем самым оптимизируя доступ к базе данных;
- dbExpress непосредственно управляет буфером записей и блоками буферов записей. В BDE для этого необходимы клиенты, чтобы распределять память, используемую для помещения записей в буфер;
- dbExpress не поддерживает локальные таблицы, которые основаны не на запросах SQL (то есть такие, как Paradox, dBase или FoxPro);
- драйверы dbExpress позволяют работать с базами данных InterBase, Oracle, DB2 и MySQL. Если вы используете другой сервер баз данных, вам придется выбрать один из трех путей:
- преобразовать данные в один из поддерживаемых форматов;
- написать самостоятельно драйвер dbExpress для используемого сервера баз данных;
- использовать драйвер стороннего производителя.
Отличия на уровне компонентов
Когда вы создаете приложение, использующее dbExpress, необходимо применять различные наборы компонентов доступа к данным.
В табл. 21.7 приведен список наиболее важных компонентов для работы с базами данных, которые применяются в InterBase Express, BDE и ADO в среде Windows, и показано их соответствие компонентам dbExpress для использования в среде Linux и кроссплатформенньк приложениях.