诡异的VC7 ADO连Oracle错误,请各位大侠帮帮忙
本人去年用VC7写了一个程序,其中包含了使用ADO连接ORACLE数据库的方法,程序正常,交付客户使用。
今年客户对这个程序提出新的要求,我要对程序做修订。昨天我执行了以前的程序,竟然发现不能连接oracle了,同样的机子,同样的代码,同样的数据库,在Connection15::Open处失败,抛出的异常是些乱码,无法提供任何帮助。
今天又仔细看了下程序,对照oledb连接oracle的3个步骤(引入msado15.dll,初始化CoInitialize,定义ConnectionPtr)反复检查多次,都没有发现有任务。网上找了N多资料,复制下来改了连接串直接调用,依然在Open处抛出异常。彻底抓狂了,恳请各位大侠看看,这到底是啥子原因。
pCn.CreateInstance(__uuidof(Connection));
pCn->CursorLocation=adUseClient;
pPcr.CreateInstance(__uuidof(Recordset));
pPrjf.CreateInstance(__uuidof(Recordset));
sqlStr="Provider=OraOLEDB.Oracle.1;Persist Security Info=True;PLSQLRSet=1;User ID=zx;Password=zx;Data Source=oradb";
try
{
pCn->Open(sqlStr,"","",adModeUnknown); //每次执行到这里都会抛出异常
}
catch(_com_error e)
{
CString aaa;
aaa.Format(_T("%s"),e.ErrorMessage);
// ::MessageBox(this->m_hWnd,"数据库无连接或者无法打开,请检查网络配置","操作提示",MB_ICONSTOP);
::MessageBox(this->m_hWnd,aaa,"初始化操作提示",MB_ICONSTOP);
return FALSE;
}