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);
展开
 我来答
intehel
2015-05-16 · TA获得超过1293个赞
知道大有可为答主
回答量:1601
采纳率:100%
帮助的人:1773万
展开全部

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();
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式