使用VS C++ 2005 + sp1和Oracle 10g的OCI库开发一个应用程序。
其中在连接数据库服务器调用OCIEnvCreate函数返回-1,不知道为什么。听公司一位高手说,OCIEnvCreate函数调用失败,是无法使用OCIErrorGet()函数获取错误信息的(因为连环境都没创建)。 但是我用本机的oracle客户端的Console输入相同的用户名和密码是可以连接连接数据库服务器的。大家认为OCIEnvCreate函数调用失败的原因有哪些呢?
其中在连接数据库服务器调用OCIEnvCreate函数返回-1,不知道为什么。听公司一位高手说,OCIEnvCreate函数调用失败,是无法使用OCIErrorGet()函数获取错误信息的(因为连环境都没创建)。 但是我用本机的oracle客户端的Console输入相同的用户名和密码是可以连接连接数据库服务器的。大家认为OCIEnvCreate函数调用失败的原因有哪些呢?
中文出错提示:OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用。解决方案一:
主要是将oracle主目录oracle\的读写权限赋予asp.net或者是IUSER_..和IWAM_..,重启计算机。解决二:打开在IIS中的WEB属性--主目录--执行权限【改为-脚本和可执行文件】;-应用程序池【改为-MSSharePointAppPool】,刷新OK;
网上关于配置instantclient的文章都只提到需要配置TNS_ADMIN,
却没有说到需要配置path,这其实是个低级的错误。
主要是因为不明白oci或者instantclient的运行原理吧。