English version Russian version





Вопрос 1 Я получаю сообщение: Запрошенная функциональность [idbschemarowset::getschema] доступна только в коммерческой версии IBProvider [www.ibprovider.com]
Вопрос 2 Я получаю сообщение при подключении к серверу Interbase: ' Free IBProvider не может работать с сервером баз данных [%1] версии [%2]. Оригинальный идентификатор сервера:%3. Поддержка этого сервера доступна только в коммерческой версии IBProvider'a [www.ibprovider.com]'
Вопрос 3 Может ли IBProvider работать в связке Firebird delphi и Interbase delphi?
Вопрос 4 Во время простейшей команды SELECT, я получаю ошибку "Automatic transaction is disabled". Как избежать этого?
Вопрос 5 Возможно ли комбинировать "auto_commit" с явным управлением транзакциями?
Вопрос 6 Как установить у транзакции такие специфичные для IB/FB свойства как например "wait" и "no wait"?
Вопрос 7 Почему не работает пул подключений?
Вопрос 8 Каковы обязательные параметры инициализации IBProvider'a в качестве связанного сервера MS SQL?
Вопрос 9 В чем различие между бесплатной и коммерческой версией?
Вопрос 10 Почему открываемые наборы рядов имеют атрибут только на чтение ?
Вопрос 11 При использовании IBProvider v2 в ADOExpress не работает серверный курсор. С первой версией все работает.
Вопрос 12 Почему у меня продолжают оставаться активные подключения к базе данных? Раньше такого не было.
Вопрос 13 Может ли IBPRovider работать в Microsoft Visual Studio .Net?
Вопрос 14 Могу ли я использовать именованные параметры в ADO.Net?



Вопрос 1: Я получаю сообщение: Запрошенная функциональность [idbschemarowset::getschema] доступна только в коммерческой версии IBProvider [www.ibprovider.com]
IBProvider Free Edition имеет функциональные ограничения: в нем не поддерживаются схемы метаданных а так же работа с серверми Interbase выше 6 версии. Чтобы воспользоваться всеми возможностями IBProvider и избежать таких сообщений в будущем установите IBProvider Professional Edition .
Вопрос 2: Я получаю сообщение при подключении к серверу Interbase: ' Free IBProvider не может работать с сервером баз данных [%1] версии [%2]. Оригинальный идентификатор сервера:%3. Поддержка этого сервера доступна только в коммерческой версии IBProvider'a [www.ibprovider.com]'
Возможность работы с Interbase выше 6-й версии доступна только в профессиональной редакции IBProvider Professional Edition .
Вопрос 3: Может ли IBProvider работать в связке Firebird delphi и Interbase delphi?
Существует несколько способов работы с Interbase и Firebird в Delphi (RAD Studio):
  • dbGo (ADO Express) компоненты, работающие через библиотеку ADO.
  • прямой доступ к COM-интерфейсам ADO, минуя компоненты dbGo.
  • прямой доступ к COM-интерфейсам OLE DB при помощи сторонних VCL-компонент (OLE DB Direct/OLE DB Express).
Посмотрите примеры работы с Firebird и Interbase из Delphi с использованием библиотеки ADO + MTS: Firebird Delphi и Interbse Delphi
Вопрос 4: Во время простейшей команды SELECT, я получаю ошибку "Automatic transaction is disabled". Как избежать этого?
Для работы в режиме "auto-commit" Вам необходимо указать "auto_commit = true" в строке подключения, если подключение уже создано, Вы можете установить свойство сессии "SessionAutoCommit = true". Вы можете работать и в других режимах. Этому вопросу посвящена страница новостей от 3 января 2001 года. Вы можете использовать ADODB.Connection.BeginTrans или start_transaction, при работе на ADO или C++ соответственно. В примерах описано, как это делать.
Вопрос 5: Возможно ли комбинировать "auto_commit" с явным управлением транзакциями?
Да, Вы можете явно управлять транзакциями в режиме "auto_commit". IBProvider запускает транзакции только если в текущей сессии нет запущенных транзакций.
Вопрос 6: Как установить у транзакции такие специфичные для IB/FB свойства как например "wait" и "no wait"?
Данные свойства можно устанавливать только при запуске транзакций через SQL команды (смотрите пример работы через ADO).
Для получения более подробной информации смотрите в документации IB/FB синтаксис команды "SET TRANSACTION".
Вопрос 7: Почему не работает пул подключений?
В строке подключения не указано свойство "...;free_threading=true"
Вопрос 8: Каковы обязательные параметры инициализации IBProvider'a в качестве связанного сервера MS SQL?
"user id=gamer;password=vermut;free_threading=true;truncate_char=false;..."
Вопрос 9: В чем различие между бесплатной и коммерческой версией?
Сравнение версий здесь
Вопрос 10: Почему открываемые наборы рядов имеют атрибут только на чтение ?
Скорее всего, вы используете Free IBProvider, в котором у колонок результирующего множества отсутствует атрибут, разрешающий запись. В коммерческой версии этот атрибут установлен.
Вопрос 11: При использовании IBProvider v2 в ADOExpress не работает серверный курсор. С первой версией все работает.
Проблема заключена в ADOExpress. Эти компоненты не могут работать с 8-байтными закладками рядов, которые используются в IBProvider v2. В первой версии провайдера (входит в состав дистрибутива коммерческой версии, наряду со второй версией) используются 4-байтные закладки, которые поддерживаются ADOExpress. Поэтому при работе со второй версии провайдера через ADOExpress, вы можете использовать только ClientCursor. Или использовать другие VCL-компоненты доступа, в которых нет такого ограничения - например, OLEDBDirect.
Вопрос 12: Почему у меня продолжают оставаться активные подключения к базе данных? Раньше такого не было.
Скорее всего "раньше" - это до выпуска 969 сборки провайдера (2.2 и 1.7.17). Начиная с этой сборки пул подключений, по умолчанию, разрешен (свойство free_threading установлено в true). Для запрета пула подключений - укажите в строке подключения free_threading=false.
Вопрос 13: Может ли IBPRovider работать в Microsoft Visual Studio .Net?
Да конечно. IBProvider реализует весь набор Ole Db интерфейсов, необходимых для использования IBProvider в качестве поставщика данных .Net (System.Data.OleDb). Смотрите примеры.
Вопрос 14: Могу ли я использовать именованные параметры в ADO.Net?
IBProvider поддерживает именованные параметры, но библиотека ADO.Net для поставщиков данных Ole Db и ODBC поддерживает только позиционные параметры. Вы можете использовать именованные параметры, но вам необходимо добавлять параметры в коллекцию в той же последовательности, в которой они следуют в OleDbCommand.CommandText. Установка значений параметров может производиться в произвольном порядке. К примеру:

\\определяем OleDbCommand с двумя именованными параметрами(:name and :id)
OleDbCommand.CommandText ="update employers set name=:name where id=:id"
\\добавляем параметры в порядке их следования в OleDbCommand.CommandText
OleDbCommand.Parameters.Add("name",OleDbType.VarChar);
OleDbCommand.Parameters.Add("id",OleDbType.Integer);

\\Устанавливать параметры можно в произвольном порядке
OleDbCommand.Parameters["id"].Value = NewID;
OleDbCommand.Parameters["name"].Value = "Some name";



Сборка сайта № 3.0.0.1660