使用VS C++ 2005 + sp1和Oracle 10g的OCI库开发一个应用程序。
  其中在连接数据库服务器调用OCIEnvCreate函数返回-1,不知道为什么。听公司一位高手说,OCIEnvCreate函数调用失败,是无法使用OCIErrorGet()函数获取错误信息的(因为连环境都没创建)。    但是我用本机的oracle客户端的Console输入相同的用户名和密码是可以连接连接数据库服务器的。大家认为OCIEnvCreate函数调用失败的原因有哪些呢?

解决方案 »

  1.   

    英文出错提示:Could not create an environment: OCIEnvCreate returned -1
    中文出错提示:OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用。解决方案一:
                   主要是将oracle主目录oracle\的读写权限赋予asp.net或者是IUSER_..和IWAM_..,重启计算机。解决二:打开在IIS中的WEB属性--主目录--执行权限【改为-脚本和可执行文件】;-应用程序池【改为-MSSharePointAppPool】,刷新OK;
      

  2.   

    可以改用OCIInitialize和OCIEnvInit这两个函数试试,功能是和OCIEnvCreate等价的。
      

  3.   

    我也遇到了类似的问题,已经解决,原因是:没有在path中配置instantclient的路径。
    网上关于配置instantclient的文章都只提到需要配置TNS_ADMIN,
    却没有说到需要配置path,这其实是个低级的错误。
    主要是因为不明白oci或者instantclient的运行原理吧。