我正在使用Visual Studio开发一个使用Occi来查询Oracle 11g数据库的C ++程序。此时这是一个非常简单的程序,只能进行单一查询,但我一直运行到运行时错误。我首先尝试在VS2010中开发这一点,下载11.2.0.3 OCCI文件,我收到了与未位于OCI.dll中的堆alloc过程的入口点相关的错误。我得到了印象这个错误可能是由于我的Oracle客户端是11.2.0.1的事实。

因为我无法升级我的客户端到更高版本的原因,我决定倒回使用Visual Studio 2005,因为我在Oracle的Occi文档中读取了VC8版本的OCCI LIBS和DLL已经安装了在11g客户端。所以我将C ++ / Occi程序移动到VS 2005,现在我得到了一个不同的调试运行时错误:错误消息框,说“应用程序无法正确初始化”,以及来自VS输出窗口中的Loader中的消息“Ldrpwalkimportdescriptor中的”ldrpwalkimportdescriptor中的消息“ ()无法探测[Oracle客户端dir] \ oci \ lib \ msvc \ vc8 \ oraocci11d.dll为其清单,ntstatus 0xc0150002“我没有看到oraocci11d.dll的清单文件,所以我丢失了如何解决这个问题。有人可以更加精通VS Setup for Occi提出建议吗?谢谢,提前...

sheldon

有帮助吗?

解决方案

我注意到这里有许多OCCI问题留下了未解答,所以我觉得有义务解释我如何通过我的问题:)正如通常在OCCi线程中提到的那样,关键是下载适当的Oracle Instant版本客户。我尝试使用我已经安装的运行时客户端的文件,但该客户端的版本号为11.2.0.1,而OCK为VS2010需要11.2.0.2或11.2.0.3。所以我最终为OCCI和即时客户端下载了第11.2.0.2版,因为版本号必须匹配以便工作...

之后,只需一个设置路径环境变量并配置Visual Studio项目即可指向包含OCCI DLL,库和包含文件的目录,以及将TNS_ADMIN环境变量指向点包含tnsnames.ora文件的目录,该文件定义了我尝试连接的数据库。有关此设置的逐步说明,请参阅此博客文章按标记威廉姆斯。即使这篇文章是为Visual Studio 2008编写的,那么2010年的过程仍然是相同的,只有不同的版本#s ...

sheldon

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top