VS2008 MFC连接SQL数据库

时间:2021-06-07 13:09:18
VS2008连接数据库的具体步骤是什么?我看网上有说在控制面板的数据源里面先添加数据源的,以前做JAVA的时候连数据库只要写好连接字符串然后用连接类操作就行,没有在数据源里面添加啊!
下面是我写的代码
  _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


异常捕获改成这样试试。

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

#3


引用 1 楼 zyq5945 的回复:
异常捕获改成这样试试。


C/C++ code

try
{
//你的ADO代码
}
catch (_com_error& e)
{
AfxMessageBox(e.Description());
}


红色部分不需要加,已经在连接字符串中初始化好了。

m_ptrRecordset=m_ptrConnection->Execute("use eFor……


的确,那个use eForceCon不应该加上,加上之后会出现问题。最后找到原因貌似是数据库出了点问题,我又重新安装了SQL2008,连接数据库一切正常,谢谢您的解答

#1


异常捕获改成这样试试。

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

#3


引用 1 楼 zyq5945 的回复:
异常捕获改成这样试试。


C/C++ code

try
{
//你的ADO代码
}
catch (_com_error& e)
{
AfxMessageBox(e.Description());
}


红色部分不需要加,已经在连接字符串中初始化好了。

m_ptrRecordset=m_ptrConnection->Execute("use eFor……


的确,那个use eForceCon不应该加上,加上之后会出现问题。最后找到原因貌似是数据库出了点问题,我又重新安装了SQL2008,连接数据库一切正常,谢谢您的解答