| Вопрос 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";
|