На моей машине разработки у меня есть Delphi 10.2 и Firebird 2.5. Приложения баз данных, которые я создаю в этой конфигурации, работают правильно.
Я скопировал одну программу вместе с ее базой данных на другой компьютер под управлением Windows 10. Я установил Firebird; Я также установил на этот компьютер SQL Manager Lite для InterBase / Firebird, и эта программа может открывать базу данных и просматривать содержащиеся в ней данные. Но моя программа на Delphi не может открыть базу данных, отображая сообщение об ошибке «Не удалось загрузить dbxfb.dll (код ошибки 193)». Возможно, он отсутствует в системном пути ».
Я скопировал dbxfb.dll в любое место, о котором я могу думать (тот же каталог, где находится программа, тот же каталог, где находится база данных, windows \ system32, C: \ Program Files (x86) \ Firebird и т. Д. ), но сообщение остается прежним. На моей машине разработки то, что я считаю путем (т.е. системные свойства \ расширенные \ переменные среды), содержит только каталог% USERPROFILE% \ AppData \ Local \ Microsoft \ WindowsApps. На другом компьютере я добавил C: \ Program Files (x86) \ Firebird, но безрезультатно.
Итак, где должен находиться dbxfb.dll, или как мне сказать моей программе, где его найти?
Изменить: Что касается «разрядности», оба компьютера 64-разрядные. В диалоговом окне «Параметры проекта» в Delphi есть только 32-битный вариант. Я установил для программы параметр совместимости с Windows 8, но это не повлияло на отсутствующую dll.
Дальнейшее редактирование: версия, которая есть / была на целевой машине, имеет размер 1412 КБ и датирована 13.11.2015 1:55; эта версия явно взята из C: \ Program Files (x86) \ Embarcadero \ Studio \ 17.0 \ bin64, так что это определенно неправильная версия.
В C: \ Program Files (x86) \ Embarcadero \ Studio \ 17.0 \ bin есть версия размером всего 278 КБ, та же дата, но час 06:55. Копирование меньшего файла на целевой компьютер и запуск программы теперь дает другое сообщение об ошибке: ошибка ввода-вывода во время операции @ 1 для файла @ 2. Ошибка при попытке открыть файл.
Windows-1251
codepage. Юникод необходим, если вы хотите поддерживать русский И некоторые другие расширенные языки, такие как греческий, испанский, немецкий. Если все, что вам нужно, это русский плюс базовая латынь (английский без расширенных символов), тогда Delphi 5/7 подойдет. Кроме того, есть элементы управления TNT Unicode для Delphi 7, при условии, что они охватывают только стандартный VCL, а библиотеки db-connection - это совсем другая история. - person Arioch 'The   schedule 22.01.2021In the Project Options dialog box in Delphi, there is only the option of 32 bits.
вы можете щелкнуть правой кнопкой мыши AFAIR (или что-то еще, что трудно найти) и добавить любую другую архитектуру, например x64. Не то чтобы вам это могло понадобиться, просто для полноты картины :-) - person Arioch 'The   schedule 22.01.2021i/o error during "@1" operation for file "@2". Error while trying to open file.
Я подозреваю, что это исходит от Firebird, который не был полностью установлен, не может найти подходящую версию firebird.msg (соответствующую fbclient.dll). Но, возможно, отсутствующий файл - это какая-то другая таблица описаний ошибок. В любом случае, используйте стандартный инструмент SysInternals Process Monitor, чтобы увидеть, какой файловый ввод-вывод ваше приложение генерировало в последние моменты перед отображением ошибки, и найдите подсказки, в чем заключалась ошибка. - person Arioch 'The   schedule 22.01.2021