Delphi 6 -> Delphi 2006 dbexpress странности? - PullRequest
0 голосов
/ 28 августа 2009

У меня есть старое приложение (написанное на Delphi 6), которое нужно перенести на Delphi 2006 (обновление 2). Приложение использовалось для подключения к базе данных Interbase 6.x с использованием DBExpress, но новая версия должна подключаться к Superberv Firebird 2.x

Портирование прошло нормально, никаких реальных проблем. Но теперь, когда я пытаюсь подключиться к новому серверу Firebird из перенесенного приложения, я получаю следующую ошибку:

Ошибка базы данных Ошибка сервера базы данных: нет текущей записи для операции выборки

Запуск того же приложения, скомпилированного с Delphi 6, общение с тем же сервером Firebird работает нормально. Изменения, необходимые для компиляции приложения в Delphi 2006, не были связаны с кодом базы данных - все вещи из локальной библиотеки. Приложение использует TSQLDataset en datasetproviders и clientdatasets.

Кто-нибудь знает, как и почему? Любые изменения в DBExpress, которые могут вызвать это поведение? Спасибо.

Ответы [ 3 ]

0 голосов
/ 12 февраля 2010

До Delphi 2010 встроенные драйверы DBExpress официально никогда не поддерживали FireBird.
На практике многие комбинации никогда не работали вообще.

Или:

  • для драйвера DBExpress, официально поддерживающего FireBird ( search google ),
  • или перейдите на другой средний уровень базы данных (FIBPlus, который Джеймс считает действительно хорошим).

- Йерун

0 голосов
/ 12 февраля 2010

Прежде всего, повторите те же шаги из нового приложения, состоящего из 1 формы (укажите SQLConnection, SQLQuery и т. Д.), Заполните требуемый SQL и попытайтесь подключиться.

Я полагаю, что есть какой-то параметр соединения, который изменялся между версиями, так как я использовал D2006 DBexpress для успешного доступа к Firebird 2.x. Но приложение было портировано, а не новые проекты.

0 голосов
/ 28 августа 2009

Я не думаю, что Delphi 2006 изначально поддерживает Firebird. Думаю, вам нужно установить FIBPlus

Вот список того, что поддерживается в Delphi 2006:

Old driver      New driver      Database and Version

dbexpinf.dll    dbxinf30.dll    Interbase 7.5
dbexpora.dll    dbxora30.dll    Oracle 10g
dbexpdb2.dll    dbxdb230.dll    db2 UDB 8.x
dbexpmss.dll    dbxmss30.dll    MSSQL 2000
dbexpmys.dll    dbxmys30.dll    MySQL 4.0.24
dbexpasa.dll    dbxasa30.dll    Adaptive Sybase Anywhere 9
dbexpase.dll    dbxase30.dll    Sybase 12.5
dbexpinf.dll    dbxinf30.dll    Informix 9.x

Извлечено из Здесь

...