用于Delphi xe的64位Oracle客户端
如何为Delphi xe(运行32位并具有32位客户端)安装64位客户端 我可以在同一台机器上同时运行32位客户端和64位客户端吗?用于Delphi xe的64位Oracle客户端
我正在开发一个64位应用程序,所以我需要使用32位客户端64位客户端
我得到
sourceException {“尝试加载Oracle客户端库扔BadImageFormatException。这个问题会“System.Exception {System.InvalidOperationException}
如果客户端的意思是某些x64 dll被加载到进入64位模式并且安装了32位Oracle客户端组件德尔福的x86应用程序,你不能这样做。如果客户是某个其他进程并使用某种形式的进程间通信,则可以这样做。
那么你的选择是:
- 使用FreePascal的构建在x64“德尔福的客户
- 使用德尔福棱镜(德尔福.NET)在Delphi 建(64).Net客户端
- Seprate无论是在不同的进程,并使用进程间通信的一种形式
- 使用Oracle客户端
- 使用另一种32位库的32位版本做了Oracle客户端不
我在组织中看到过很多次,因为他们安装了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在系统搜索路径中使用oracle主目录。
虽然我从来没有尝试过,你应该能够在Delphi中dbxdrivers.ini文件中指定OCI.DLL的完整版本 指定实际的Oracle 家里,你要使用。
Delphi XE是一个32位应用程序,它只能生成32位应用程序。您可以使用32位应用程序生成64位应用程序:它被称为交叉编译器。例如FPC可以从32位交叉编译链AFAIK产生64位exe文件。 – 2011-06-01 19:52:52
请修改您的标题以更准确地反映您希望解决的问题。即“64位Oracle客户端”将会有所帮助。 – 2011-06-01 20:59:59