下面是我写的代码
_CommandPtr m_ptrCommand; //命令对象
_RecordsetPtr m_ptrRecordset; //记录集对象
_ConnectionPtr m_ptrConnection; //数据库对象
//创建对象
m_ptrCommand.CreateInstance(__uuidof(Command));
m_ptrRecordset.CreateInstance(__uuidof(Recordset));
m_ptrConnection.CreateInstance(__uuidof(Connection));
try{
m_ptrConnection->ConnectionString="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=eForceCon;Data Source=JANE-PC\\SQLEXPRESS";
m_ptrConnection->Open("","","",adModeUnknown);
m_ptrRecordset=m_ptrConnection->Execute("use eForceCon select * from data1",NULL,adCmdText);
m_ptrRecordset->GetCollect("Time");
}
catch(_com_error e) //捕捉异常
{
CString strError;
strError.Format( "连接数据库发生异常! \r \n错误信息:%s",e.ErrorMessage());
AfxMessageBox(strError);//显示错误信息
}
到m_ptrRecordset->GetCollect("Time");这一句就有问题,捕获的异常是:未知错误,求解释啊。高手帮忙啊,以上代码有什么错误呢?或者直接告诉我正确的做法也行啊,刚学,望指点
3 个解决方案
#1
异常捕获改成这样试试。
红色部分不需要加,已经在连接字符串中初始化好了。
m_ptrRecordset=m_ptrConnection->Execute(" use eForceCon select * from data1",NULL,adCmdText);
try
{
//你的ADO代码
}
catch (_com_error& e)
{
AfxMessageBox(e.Description());
}
红色部分不需要加,已经在连接字符串中初始化好了。
m_ptrRecordset=m_ptrConnection->Execute(" use eForceCon select * from data1",NULL,adCmdText);
#2
这个SQL好像也的问题:
use eForceCon select * from data1
use eForceCon select * from data1
#3
的确,那个use eForceCon不应该加上,加上之后会出现问题。最后找到原因貌似是数据库出了点问题,我又重新安装了SQL2008,连接数据库一切正常,谢谢您的解答
#1
异常捕获改成这样试试。
红色部分不需要加,已经在连接字符串中初始化好了。
m_ptrRecordset=m_ptrConnection->Execute(" use eForceCon select * from data1",NULL,adCmdText);
try
{
//你的ADO代码
}
catch (_com_error& e)
{
AfxMessageBox(e.Description());
}
红色部分不需要加,已经在连接字符串中初始化好了。
m_ptrRecordset=m_ptrConnection->Execute(" use eForceCon select * from data1",NULL,adCmdText);
#2
这个SQL好像也的问题:
use eForceCon select * from data1
use eForceCon select * from data1
#3
的确,那个use eForceCon不应该加上,加上之后会出现问题。最后找到原因貌似是数据库出了点问题,我又重新安装了SQL2008,连接数据库一切正常,谢谢您的解答