MFC中使用ADO连接access数据库,但是总在打开记录集这里报错中断,代码附上,求大神指导
//连接数据库try{//创建连接对象实例m_pConnection1.CreateInstance("ADODB.Connection");//设置连接字符串CStri...
//连接数据库
try
{
//创建连接对象实例
m_pConnection1.CreateInstance("ADODB.Connection");
//设置连接字符串
CString strConnect="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=shujuku.mdb;Persist Security Info=False";
//使用Open方法连接数据库
m_pConnection1->Open((_bstr_t)strConnect,"","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox(_T("连接数据失败,请检查数据库路径是否正确!"));
}
//查询
_bstr_t bstrSQL = "select * from employees where sex = '男'";
//创建记录集指针对象实例
m_pRecordset1.CreateInstance(__uuidof(Recordset));
//打开记录集
m_pRecordset1->Open(bstrSQL,m_pConnection1.GetInterfacePtr(),adOpenDynamic,
adLockOptimistic,adCmdText); 展开
try
{
//创建连接对象实例
m_pConnection1.CreateInstance("ADODB.Connection");
//设置连接字符串
CString strConnect="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=shujuku.mdb;Persist Security Info=False";
//使用Open方法连接数据库
m_pConnection1->Open((_bstr_t)strConnect,"","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox(_T("连接数据失败,请检查数据库路径是否正确!"));
}
//查询
_bstr_t bstrSQL = "select * from employees where sex = '男'";
//创建记录集指针对象实例
m_pRecordset1.CreateInstance(__uuidof(Recordset));
//打开记录集
m_pRecordset1->Open(bstrSQL,m_pConnection1.GetInterfacePtr(),adOpenDynamic,
adLockOptimistic,adCmdText); 展开
1个回答
展开全部
1、记录集的CreateInstance和Open也需要放到try...catch...里面,于是发生异常的时候可以通过e.Description()得知具体异常信息;
2、AfxMessageBox出来之后,这里需要退出该函数,否则连接都没打开,下面的代码继续执行毫无意义;
3、别的没看出什么问题,但是我打开记录集一般都用这种方式:
_RecordsetPtr rs = m_pConnection1->Execute("select * from employees where sex='男'",NULL,adCmdText);
if(rs != NULL && !(rs->BOF && rs->ADOEOF))
{
rs->MoveFirst();
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询