adodb15.dll我已经引入了
AfxOleInit();我也做了.
try{
m_pConnection->ConnectionString="\\cc.udl";(程序执行到这一步就出现异常了)
m_pConnection->Open("","","",NULL);
}udl文件的连接我已经测试过了,没问题.着急啊,各位帮忙 !!
AfxOleInit();我也做了.
try{
m_pConnection->ConnectionString="\\cc.udl";(程序执行到这一步就出现异常了)
m_pConnection->Open("","","",NULL);
}udl文件的连接我已经测试过了,没问题.着急啊,各位帮忙 !!
m_pDBConn.CreateInstance(__uuidof(Connection));
m_pDBConn->ConnectionString ="File Name=c:\mydir\my_data1.udl";
m_pDBConn->Open("","","",NULL);
就会出现错误了;
m_pDBConn->ConnectionString ="File Name=c:\\mydir\\my_data1.udl"
我用debug追踪,发现m_pDBConn有个m_pinterface变量,
好像这个变量是NULL就会出错。
且捕获的e=E_POINTRT?为什么?????
先把这个智能指针设空,然后在CreateInstance的下一行断点,如果不确定就一步步下断点,查看变量窗口的值
if (FAILED(hRet))
{
// 出错处理;
}
下面是我的一段执行良好的程序:
CString m_strConnect;
m_strConnect.Format("Provider=OraOLEDB.Oracle; Data Source=%s; User ID=%s; PassWord=%s",
strDataSource,
strUserID,
strPassWord); try
{
// _ConnectionPtr
HRESULT m_hRet = m_pOraConnect.CreateInstance(__uuidof(Connection));
if (FAILED(m_hRet))
{
AfxMessageBox("连接Oracle数据库时出现异常,错误代码001!");
return FALSE;
}
m_hRet = m_pOraConnect->Open(m_strConnect.GetBuffer(0), "", "", adModeUnknown);
if (FAILED(m_hRet))
{
AfxMessageBox("连接Oracle数据库时出现异常,错误代码002!");
return FALSE;
}
// _RecordsetPtr
m_hRet = m_pOraRecordset.CreateInstance(__uuidof(Recordset));
if (FAILED(m_hRet))
{
AfxMessageBox("连接Oracle数据库时出现异常,错误代码003!");
return FALSE;
}
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
return FALSE;
}以前也遇到使用.udl文件来连接,但是好像也是出了问题,就是连不上.