faqs.org.ru

 Главная > Программирование > Работа с базами данных >

Borland Interbase 6 FAQ

IB 6 FAQ

Частые вопросы и ответы по IB 6

последнее обновление - 01.07.2000


Вопросы

0. Что нового в IB 6?
1. неужели IB 6 будет бесплатным и в исходниках?
2. под какие платформы выпускается IB 6?
3. что такое "диалект"?
4. что такое IBX?
5. будет ли FIBC поддерживать IB6?
6. где взять ODBC для 6.0?
7. будет ли поддерживать BDE IB 6?
8. чем можно работать с IB 6?
9. как перейти с 5.6 на 6.0?
10. не могу открыть базы данных от 5.x из 6.0 или
unsupported on-disk structure for x.gdb;found 9, support 10
11. в чем разница между архитектурами SuperServer и Classic?
12. не могу подключить UDF
13. "Can not attach to password database" после установки
14. "...license file is missing or corrupt..." при запуске

Если вы среди вопросов не нашли нужный, то обратитесь на сайт www.interbase.com, или попробуйте поискать ответ по ключевым словам в KnowledgeBase. Вопросы и предложения по FAQ направляйте на адрес ib@demo.ru.

Ответы

0. что нового в IB6?
A: Вот сокращенный список наиболее существенных новых возможностей:

Более подробно - см. документ.

1. неужели IB 6 будет бесплатным?
A: Да, IB 6 для использования (в том числе коммерческого) и распространения бесплатен. Платным является только техническое сопровождение, дистрибутивы на компактах, печатная документация и т.п.
Исходные тексты доступны на www.borland.com/interbase/index.html (с подробным описанием - в разделе IB6 сайта ib.demo.ru).

Лицензия на модификацию исходных текстов находится здесь.

2. под какие платформы выпускается IB 6?
A: Windows (95/98/NT/W2K), Linux, Solaris. Под Linux могут быть проблемы с установкой и работой, если libc имеет версию ниже 2.1.3. Более подробно по установке и работе на вариантах Linux:

Под W2K IB 6.0 работает нормально, однако иногда могут появляться сообщения об "overlapped IO". Никаких проблем в работе это не вызывает.

Версия 6.0 для платформ HP-UX, Cobalt, SCO, Novell, AIX будет выпущена позже.

Поскольку исходные тексты IB одинаковы для всех платформ (общий код с ifdef), то вы сами можете попробовать портировать IB под желаемую платформу.

3. что такое "диалект"?
A: В IB 6 появилось несколько расширений, как SQL так и типов данных, которые поддерживаются при помощи диалектов.

Таблица отличий диалектов (by Dave Shnepper)

SQL Item Dialect 3 Dialect 2 * Dialect 1 **
DATE Только дата Сообщение об ошибке Дата и время (Timestamp)
TIMESTAMP Дата и время Дата и время Дата и время (для v.6.x только)
TIME только время сообщение об ошибке? Ошибка
"<quoted item>" имя поля, таблицы, и т.п. сообщение об ошибке строковая константа
Точность: 1/3 = 0 0 (с предупреждением ?) 0.3333333... (double precision)
NUMERIC(11,*) 64 bit int 64 bit int (с предупреждением ?) double precision

Диалект 1 в версии 6 отличается от версии 5.x поддержкой следующих ключевых слов: TIMESTAMP, TIME, EXTRACT, YEAR, MONTH, DAY, WEEKDAY, HOUR, MINUTE, SECONDS, ?TYPE?, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP. Т.е. использование этих ключевых слов в качестве идентификаторов полей, таблиц и других объектов будет приводить к ошибке.

Кроме этого в диалекте 3 не поддерживается автоматическая конвертация типов в выражениях. Например, если раньше в SQL можно было написать 1+'3' и получить ответ 4, то в диалекте 3 будет выдано сообщение об ошибке.

Более подробно диалекты описаны здесь. Работа с большими NUMERIC и DECIMAL очень подробно описана в документе.

4. что такое IBX?
A: IBX - это набор компонент для Delphi 5 и C++Builder 5, позволяющий работать с серверами IB 4.x, 5.x, 6.x напрямую. Поддерживает диалекты 1-3 для IB 6. Содержит компоненты Services API IB6, позволяющие управлять серверами IB, их параметрами, делать удаленный backup/restore, проверять базы данных и др.
IBX "унаследован" от FreeIBComponents (FIBC), но кроме общих черт содержит массу design-time редакторов свойств, упрощающих выбор типов транзакций, параметров подсоединения, запросов и т.п.

Самое последнее обновление IBX 4.2 - для Delphi и C++Builder. Также можно взять исходные тексты IBX 4.2 с www.borland.com/interbase/index.html.

Services API работает только с серверами архитектуры SuperServer. Services API в серверах архитектуры Classic не поддерживается.

Поддержкой и развитием IBX занимается компания Interbase Software Corp.

5. будет ли FIBC поддерживать IB6?
A: по сообщению автора, нет. Из компонент диалекты и особенности IB 6 сейчас полностью поддерживает только IBX и IBObjects. Также поддерживает IB 6 надстройка над FIBC - FIBPlus.
Сами компоненты FIBC в чистом виде поддерживать IB 6 не будут, т.к. их автор фактически отказался от дальнейших модификаций FIBC.

6. где взять ODBC для 6.0?
A: Сейчас единственной возможностью является работа через ODBC из дистрибутивов IB 5.5 или IB 5.6 (драйвер InterSolv версии 3.11.01.00), причем только с базами данных диалекта 1. По текщему состоянию odbc для 6 см. документ.

7. будет ли поддерживать BDE IB 6?
A: Неизвестно. Разумеется, из BDE можно спокойно работать с базами данных диалекта 1, но диалект 3 скорее всего поддерживаться не будет. Поэтому, похоже что с Database Explorer (SQL Explorer) придется распрощаться. Как и с компонентами BDE, если вы собираетесь работать с базами данных диалекта 3. Переходите, пока не поздно, на IBX.

Уже точно известно, что в Delphi 6 и Kylix будет dbExpress. Это библиотека доступа к данным более низкого уровня и функциональности, чем IBX, и уж тем более чем BDE.

8. чем можно работать с IB 6?
A: Если база данных в диалекте 1, то к ней можно обращаться из программ, поддерживающих IB4 или IB5. Если БД перенесена в диалект 3 (или создана в нем), то пока вариантов немного:

9. как перейти с 5.6 на 6.0?
A: Этот процесс более сложен, чем при переходе от 4.x к 5.x. Как минимум нужно сделать backup в 5.x и restore в 6.0, и прочитать Migration Guide (или секцию по миграции в Getting Started).

10. не могу открыть базы данных от 5.x из 6.0 или
unsupported on-disk structure for x.gdb;found 9, support 10

A: IB 6 поддерживает базы данных только формата ODS 10. Необходимо сначала сделать backup базы данных в 4.x или 5.x, и только потом сделать restore в 6.0. При этом база данных будет в dialect 1, т.е. к ней можно будет обращаться из старых приложений. По форматам ODS см. статью.

11. в чем разница между архитектурами SuperServer и Classic?
A: Если в двух словах, то Classic создает процесс для каждого пользовательского коннекта, а SuperServer - один процесс, который обрабатывает запросы клиентов в разных threads (этого же процесса). Архитектура Classic надежнее, но SuperServer - производительнее. Более подробно читайте документ.

В Windows архитектура SuperServer была введена с версии 4.2. Для Linux (Unix) большинство портов были Classic, однако порт SuperServer также существует. На Solaris IB имеет архитектуру SuperServer.

12. не могу подключить UDF
A: В IB 6 изменились правила подключения UDF - теперь подключаемые библиотеки должны лежать только в подкаталоге udf установленного сервера. Это сделано для обеспечения security.

13. "Can not attach to password database" после установки
A: Скорее всего вы поставили IB 6 в каталог, где ранее был установлен IB 5 или 4. При установке инсталлятор не переписывает базу данных паролей пользователей (isc4.gdb), т.е. он ее сохраняет, предполагая что вы могли забыть сделать резервную копию этой БД. А поскольку IB6 не может работать с базами данных предыдущего формата (только после backup/restore), то и не может подсоединиться к isc4.gdb для получения пароля SYSDBA (или любого другого пользователя).
Если вам нужен isc4.gdb, то скопируйте его в isc4copy.gdb и положите в сторонку. Потом возьмите isc4.gdb из дистрибутива IB 6, и поместите на место старого. После этого подсоединиться можно как SYSDBA и masterkey. Для восстановления списка пользователей необходимо сделать backup isc4copy.gdb на IB версии 5, затем восстановить этот backup под IB6, остановить сервер IB6 и переименовать isc4copy.gdb в isc4.gdb.
Можно обойтись и без такой процедуры, если откопировать данные из старой базы данных в новый isc4.gdb каким-нибудь инструментом вроде datapump (см. Tools Downloads).

14. "...license file is missing or corrupt..." при запуске
A:
Дело в том, что в существующие дистрибутивы бета-версии IB 6 "зашита" лицензия, работающая до 23 мая (см. файл ib_license.dat). Таким образом ISC ограничивает срок действия лицензии, чтобы пользователи брали более свежую версию с сайта.
В релизе IB 6 лицензий или ограничений на количество коннектов нет. Для использования беты IB нужно эту лицензию продлить.

Первый способ: Если вас устраивает лицензия на 5 клиентов, то сделать это можно в любой момент запустив утилиту license registration tool, и введя там -key eval -id eval. Это продлит работу IB еще на 90 дней.

Второй способ: установить лицензию сроком до 31 августа. Взять ее с сайта, либо отсюда:

(обратите внимание, что текст лицензии должен быть прописан в ib_license.dat в одну строку, т.е. точно так же как и предыдущая, до 23 мая, лицензия).

Windows License
PRODUCT INTERBASE, OPTIONS ACDEILQRSW3, VERSION WI-B6.0, CERTIFICATE 100, USERS 100, UNTIL 31-AUG-2000, ID VAR-12446, KEY c5-fd-b7-14, COMMENT extended beta license

Linux License
PRODUCT INTERBASE, OPTIONS ACDEILQRSW3, VERSION LI-B6.0, CERTIFICATE 100, USERS 100, UNTIL 31-AUG-2000, ID VAR-12445, KEY 77-fe-b7-14, COMMENT extended beta license

Solaris License
PRODUCT INTERBASE, OPTIONS ACDEILQRSW3, VERSION SO-B6.0, CERTIFICATE 100, USERS 100, UNTIL 31-AUG-2000, ID VAR-12447, KEY 2-fd-b7-14, COMMENT extended beta license


http://ib.demo.ru, (c) KDV

Вернуться в раздел "Работа с базами данных" - Обсудить эту статью на Форуме
Главная - Поиск по сайту - О проекте - Форум - Обратная связь