我在做一个数据库程序,服务器为oracle 8.1.7,在上周五之前,一切都很正常,可是今天早上,就不行了,无法连接远程oracle数据库,但是,用sqlplus却可以连接,我认为可能和周五我要做安装程序,在机器安装了install shield 6.2有关,现在我把install shield 卸载了也没有用,怎么办?下午还要带安装程序给客户演示,救命啊!连接代码如下:
_pConOracle.CreateInstance("ADODB.Connection");
try
{
_pConOracle->ConnectionTimeout = 8;
_pConOracle->Open("Provider=oraoledb.oracle;Data Source=wztc;User ID=wztc;Password=kwztcjl","","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());

使用ado,报的错误也很奇怪,说invalid nls parameter。

解决方案 »

  1.   

    将查询语句改为:"Provider=oraoledb.oracle;Data Source=wztc;User ID=wztc;Password=kwztcjl;Network library=dbmssocn"试试,可以在网络访问数据库了.
      

  2.   

    在报错的时候,你显示一下你的_pConOracle->ConnectionString的内容,看看这里面都包括什么,分析一下!也许就找到原因了!
      

  3.   

    Network library=dbmssocn加了也不行
      

  4.   

    我也显示_pConOracle->ConnectionString的内容,和我open的参数("Provider=oraoledb.oracle;Data Source=wztc;User ID=wztc;Password=kwztcjl"
    相同而且,关键问题在于我上周五之前都可以,而且程序没有改动
      

  5.   

    建一个UDL文件试一下,能不能连接成功,如果可以,用UDL文件中的字符串做为连接字符串
      

  6.   

    经过一番查找:
    原因如下:
    我用install shield 制作的安装程序,install shield本身有错误,导致安装程序有错,安装时错误的重新注册oraolde.oracle这个provider,导致程序运行无法找到正确的dll。重新安装oracle客户端,一切ok