hr=m_pConnection.CreateInstance(__uuidof(Connection));
if(!SUCCEEDED(hr))
{
printf("fail 1");
} hr=m_pRecordset.CreateInstance(__uuidof(Recordset));
if(!SUCCEEDED(hr))
{
printf("fail 2");
}
try
{
hr=m_pConnection->Open(source,"","",16);
if(S_OK!=hr)
printf("fail 3");
else
printf("success 1");
}
catch(_com_error e)
{
printf(e.ErrorMessage());
}
try
{
hr=m_pRecordset->Open("select * from test",m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
if(!SUCCEEDED(hr))
printf("fali 4");
else
printf("success 2");
}
catch(_com_error e)
{
printf(e.ErrorMessage()); }
1.怎么要用16呢?
2.我数据库连接成功了,但是open表的时候就提示未指定错误。。!怎么回事情呢?
if(!SUCCEEDED(hr))
{
printf("fail 1");
} hr=m_pRecordset.CreateInstance(__uuidof(Recordset));
if(!SUCCEEDED(hr))
{
printf("fail 2");
}
try
{
hr=m_pConnection->Open(source,"","",16);
if(S_OK!=hr)
printf("fail 3");
else
printf("success 1");
}
catch(_com_error e)
{
printf(e.ErrorMessage());
}
try
{
hr=m_pRecordset->Open("select * from test",m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
if(!SUCCEEDED(hr))
printf("fali 4");
else
printf("success 2");
}
catch(_com_error e)
{
printf(e.ErrorMessage()); }
1.怎么要用16呢?
2.我数据库连接成功了,但是open表的时候就提示未指定错误。。!怎么回事情呢?
前者对应值为 -1 后者对应值为 16
-1表示连接模型未指定, 16表示异步方式打开连接,ConnectComplete 事件可以用来确定连接何时可用
即,使用16时,连接成功并不代表连接可用,所以从表中查询时可能报错.改为-1试试. 一般都是用-1. 当然,也可以省略.