Начиная с версии Zulu 5.01.869 в поставку включена новая версия библиотеки для работы с семантическими базами данных Zb.dll. Кроме изменений в функциональности, библиотека обрела новую объектную модель, имеющую ограниченную совместимость со старой версией.
Новая библиотека типов
Библиотека Zb.dll реализует новую версию библитеки типов (type library), имеющую название «Zulu 5.0 Database Connection Library (Version 5.1)» и соответствующий uuid ({12507360-0B01-11D2-B55D-444553540000}). Для того, чтобы использовать компоненты библиотеки в своих приложениях необходимо использовать именно эту библиотеку типов взамен старой. Использование старой библиотеки типов с новой версией Zulu невозможно.
Для того, чтобы переключиться на использование новой версии библиотеки необходимо сделать следующее:
- В Microsoft Visual Basic:
В настройках используемых библиотек (пункт Components в меню Project) снимите флажок с «Zulu 5.0 Database Connection Library» и установите флажок на «Zulu 5.0 Database Connection Library (Version 5.1)» - В Dephi и C++Builder:
Заново импортируйте компоненты Zb указав в качестве библиотеки типов «Zulu 5.0 Database Connection Library (Version 5.1)». Несмотря на то, что элемент ActiveX ZbStdBrowser будет продолжать появляться на форме, его также необходимо реимпортировать, чтобы иметь возможность пользоваться его методами и свойствами.
Новая объектная модель
В новой объектной появилось много новых объектов, а некоторые оказались упраздненными. Это следует иметь в виду при корректировании исходных текстов программ. Следующие объекты не включены в новую объектную модель:
- структура zbFieldInfo (на смену ей появились интерфейсы IZbFieldInfo и IZbFieldDef);
- структура zbTableInfo (теперь ей соответствует IZbTableInfo);
- структура zbLinkInfo (вместо нее есть IZbLinkInfo);
- интерфейс IZbTableTree (в новой модели следует использовать IZbQueryTree);
- константы zbSourceType (в новой модели они обрели новый смысл);
- свойства Fields и DisplayFields у IZbDatabase (теперь они свойства объекта IZbVisualQuery).
Получение списка полей запроса.
Так как в новой модели данных zb-описатель может содержать несколько запросов, то свойства Fields и DisplayFields отсутствуют у ZbDatabase. Для того, чтобы получить список полей запроса необходимо проделать следующие действия:
- Получить ссылку на используемый запрос (используя свойство ActiveQuery у ZbDatabase или через коллекцию запросов Queries у ZbDatabase);
- Получить ссылку на визуальный запрос (свойство VisualQuery у IZbQueryInfo);
- Получить коллекцию полей через свойства Fields или DisplayFields у IZbVisualQuery.
Получение информации о поле.
Вместо метода GetFieldInfo у IZbFields, использующего структуру zbFieldInfo, появилось параметризованное свойство Item, возвращающее объект IZbFieldInfo. Информацию о поле можно получить через свойства этого объекта.
Выполнение запросов.
Логика выполнения запросов не изменилась с новой версией библиотеки. Вызываемые у объекта ZbDatabase методы SelectAll, SelectByKey, QueryByExample и др. просто делегируются активному запросу.
Проблемы
В случае возникновения проблем с переносом кода на новую версию библиотеки для консультаций обращайтесь непосредственно к Озерову Дмитрию ([email protected])