描述:
::_RecordsetPtr rsp;
rsp.CreateInstance("ADODB.Recordset");
::_ConnectionPtr con;
con.CreateInstance("ADODB.Connection");
con->Open("DSN=MyAccess","","",-1); //出现问题的地方
...
...
con->Close();
老是在这个地方出现异常,是ODBC设置的问题吗,应该怎么做,谢谢
解决方案1:
还有你的第一个参数SQL语句也是有错误的,应该为:
"select * from ZBY".
pRst->Open("SELECT ALL FROM ZBY",_variant_t((IDispatch*)conn),ADODB::adOpenDynamic,ADODB::adLockOptimistic,ADODB::adCmdTable);
--------------------------------------------------------------------------
问题出在这一句的第二个参数,第二个参数必须如下:
_variant_t((IDispatch *)m_Con,true), 或者直接使用连接字符串也是可以的.
http://www.vckbase.com/document/viewdoc.asp?id=215
http://www.vckbase.com/document/viewdoc.asp?id=496
http://www.vckbase.com/document/viewdoc.asp?id=307
hr = ::CoInitialize(NULL);
if(FAILED(hr))
{
OnSQLErr("[初始化COM环境失败!]");
}
hr = m_Con.CreateInstance(__uuidof(Connection));
if (FAILED(hr))
{
OnSQLErr("[创建数据库连接对象失败!]");
}
HRESULT hr = NULL;
hr = m_Rst.CreateInstance(__uuidof(Recordset));
if (FAILED(hr))
{
OnSQLErr("[创建数据集对象失败!]");
}