ADO VC++连接access

stringinfo="SELECT*FROMUSERSWHEREUSERNAME='"+name+"'andpassword='"+pwd+"'";_variant_t... string info="SELECT * FROM USERS WHERE USERNAME='"+name+"'and password='"+pwd+"'";
_variant_t sql=(_variant_t)(_bstr_t)(info.c_str());
try{
m_pRec->Open(sql, _variant_t((IDispatch*)m_pCon,true),
adOpenStatic,adLockOptimistic,adCmdText);
}
catch(_com_error e) {
return false;
}
这是函数的一段,try里面出错了,是字符串有问题么
展开
 我来答
lokily2010
2012-12-04 · TA获得超过284个赞
知道小有建树答主
回答量:776
采纳率:100%
帮助的人:583万
展开全部
catch(_com_error e) {
AfxMessageBox(e.Description());//弹出错误提示看看
}

我不知道你的写法有没有啥问题,通常我这样写的
CString sql="select * from table";
m_pRec->Open(sql.AllocSysString(),m_pCon.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,-1);
更多追问追答
追问
怎么用Sql命令删除指定条件记录呢
追答
删除数据库记录,通常直接以主键做条件,比如每行都有的id,那么则:CString sql="delete from 表 where id =1",或者以复合条件,比name='张三' and tel='13012341234' ,反正就是通过条件,筛选出你要操作的记录 如:sql="delete from 表 where name='张三' and tel='13012341234'"
qiny1010
2012-12-03 · TA获得超过232个赞
知道小有建树答主
回答量:315
采纳率:0%
帮助的人:145万
展开全部
等于后面的引号多了个’ 吧还有and的前面需要一个空格
判读字符串是否有问题可以将对于的sql语句粘贴到数据库中执行看是否有错,这个办法一般比较有效
追问

string info="delete from book where ISBN='"+ISBN+"'";

 Execute(info);

 //m_pRec->Update();

 m_pRec->MoveFirst();

 m_pRec->Close();


其中Execute()是自己写的一个函数,就是执行命令,在查询的时候没问题,但是删除时弹出这个

但是数据库中的记录已经删除成功了,有时候查询不成功是也弹出这个,麻烦解决一下,加分了

追答
在Execute(info);中将可能出错的地方写道try中在catch中些自定义错误比如查询出错删除出错之类的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式