Главная » Delphi » Delphi 2006 – Множественные соединения приложения ЕСО с СУБД

0

В одном проекте ЕСО допускается несколько соединений объектного пространства с различными СУБД. Программа переключается между ними динамически, непосредственно во время работы. Подходящие компоненты (наследники класса PersistenceMapper), ответственные за новые соединения, размещаются в окне ЕС01 ProjectEcoSpace. Каждый из них может быть настроен на стыковку с совершенно разными СУБД: MS SQL Server; Borland InterBase; DB2 — или, например, на взаимодействие с файлом XML.

Конкретный объект, связывающий пространство ЕСО с некоторой СУБД, задается в свойстве PersistenceMapper окна ECOIProjectEcoSpace. Если в качестве значения этого свойства выбран пункт (попе), копия объектного пространства сохраняться нигде не будет.

Добавим к проекту компоненты PersistenceMapperBdp и BdpConnection. Настроим их на связь приложения с одной из доступных СУБД. Таким образом, в текущем проекте окажутся два компонента объектно-реляционной раскладки — PersistenceMapperBdp и PersistenceMapperXML.

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

Пусть в зависимости от некоторого условия требуется сохранять копию объектного пространства либо в СУБД, либо в файле XML. Такую возможность полезно предусмотреть, в частности, в задачах периодического архивирования данных. Соответствующий код в основной программе запишется так:

if условие then EcoSpace.PersistenceMapper :=

EcoSpace. PersistenceMapperBdpl else EcoSpace.PersistenceMapper :=

EcoSpace . PersistenceMapperXml 1 ; EcoSpace.UpdateDatabase;

Оператор присваивания настраивает пространство EcoSpace на связь с конкретным объектом — промежуточным звеном между приложением и хранилищем данных. Команда UpdateDatabase непосредственно обновляет содержимое пространства ЕСО в доступной базе данных или файле XML.

Пусть, например, на форме находится флажок Checkboxl с заголовком Сохранять в базе данных. Если он включен, то задёйствуется объект PersistenceMapperBdpl. В противном случае пространство ЕСО сохранится в файле XML:

procedure TWinForm. Buttonl__Click ( sender : System. Object; e : System.EventArgs); begin if Checkboxl.Checked then EcoSpace.PersistenceMapper :=

EcoSpace. PersistenceMapperBdpl else EcoSpace.PersistenceMapper :=

EcoSpace. PersistenceMapperXml 1 ; EcoSpace.Updatedatabase; end;

Бобровский С. И. Технологии Delphi 2006. Новые возможности. — СПб.: Питер, 2006. — 288 е.: ил.

По теме:

  • Комментарии