Я неоднократно видел в своей организации, что, поскольку они установили 64-битную ОС (Windows 7 / Windows 2008 R2), они считают, что должны установить 64-битный клиент Oracle.
ОС не контролирует это, приложение делает.
- Если ваше приложение 32-битное, оно должно использовать 32-битный клиент.
- Если ваше приложение 64-битное, оно должно использовать 64-битный клиент.
Delphi XE - это 32-битное приложение. Он может создавать только 32-битные приложения.
Обновление после уточнения вашего вопроса.
- На компьютере может быть установлено несколько клиентов Oracle
- Клиенты могут быть разных версий или битности
- Каждый клиент должен быть установлен в отдельную Oracle Home
Клиентское приложение должно быть достаточно умным, чтобы загружать правильные библиотеки. Обычно последний установленный клиент попадает в системный путь. Это обычно
также дом по умолчанию.
Приложения загружают библиотеку OCI (OCI.DLL). Обычно они делают это с loadlibrary('oci.dll')
, который собирается найти версию OCI.DLL по системному пути.
Я подозреваю, что именно это и является причиной вашей ошибки.
loadlibrary
можно вызвать с полным путем, чтобы указать, какой клиент использовать. LoadLibrary('C:\app\oracle\product\11.2.0\client_1\bin\oci.dll')
По умолчанию Delphi использует дом оракула в системном поисковом пути.
Хотя я никогда не пробовал, вы сможете указать полную версию
OCI.DLL в файле dbxdrivers.ini в Delphi, чтобы указать этого фактического оракула
дом, который вы хотите использовать.