问题描述
64位操作系统,VS2013利用ADODB访问64位oracle11g,连接字符串:publicstaticADODB.ConnectionM_CN1=newADODB.Connection();M_CN1.ConnectionString="Provider=MSDAORA.1;UserID=jylgmes/jylgmes;DataSource=ora9;PersistSecurityInfo=True";M_CN1.CursorLocation=ADODB.CursorLocationEnum.adUseClient;M_CN1.CommandTimeout=10;M_CN1.ConnectionTimeout=1;M_CN1.Open(connstr,"","",-1);报错:未找到提供程序,该程序可能未正常安装。请高手指点!
解决方案
解决方案二:
去Oracle下载个新的驱动吧我不知道这个MSDAORA.1是什么东西,看名字是微软开发的,估计已经进博物馆了
解决方案三:
多谢指点!我改用M_CN1.ConnectionString="Provider=OraOLEDB.Oracle;UserId=JYLGMES;Password=jylgmes;DataSource=ora9;PersistSecurityInfo=True";倒是能连接成功,可是运行下面语句AdoRs.Open(sQuery,Conn,ADODB.CursorTypeEnum.adOpenDynamic,ADODB.LockTypeEnum.adLockReadOnly,-1);sQuery值是:{callPKG_AQA0010C.P_SREFER('','','','')}却报错:ex.Message="ORA-06550:第1行,第7列:nPLS-00306:调用'函数名称'时参数个数或类型错误nORA-06550:第1行,第7列:nPL/SQL:Statementignored"
解决方案四:
补充:在32位系统中运行正常!
解决方案五:
解决方案六:
咋没人帮我呢?
解决方案七:
解决方案八:
AdoRs.Open最后一个参数写成(int)ADODB.CommandTypeEnum.adCmdStoredProc试试
解决方案九:
多谢指点,最后一个参数写成(int)ADODB.CommandTypeEnum.adCmdStoredProc,还是报同样的错误啊!
解决方案十:
无解吗?又石沉大海了,赶快顶啊!
解决方案十一:
两天过去了,没有人说一句话,只有自己顶了!
解决方案十二:
你看看是不是哪个参数为空导致的这个问题。检查一下其他地方。
解决方案十三:
多谢指点,参数值不空也报同样的错误!
解决方案十四:
oracle客户端分32位和64位,如果是64位,你的应用程序也必须要64位。建议你用32位的oracle客户端