ado数据库查询问题

slyrabbit 2009-07-28 11:46:57
void CAdoRWAccessDlg::OnSelchangeComboname()
{
// TODO: Add your control notification handler code here
m_pRecordset->Close();
_variant_t var;
CString StrName="",StrSql="";
m_ComboName.GetWindowText(StrName);
StrSql.Format("select Age from DemoTable where Name=%s",StrName);
BSTR bsSql=StrSql.AllocSysString();
m_pRecordset->Open(bsSql,m_pConnection.GetInterfacePtr(),adOpenAsync,adLockOptimistic,adCmdText);//此处提示错误
var=m_pRecordset->GetCollect("Age");
m_Age=(LPCSTR)_bstr_t(var);
UpdateData(FALSE);
}
我建立了个数据库名Memo.mdb,表名DemoTable,表内字段名为Name和Age的两个字段。一个Combo Box和一个Edit,Combo Box为Name的列表,Edit用了显示Age。希望实现的功能是在Combo Box中选择一个Name,Edit中显示对应的Age。实现代码如上,可是编译时提示:error C2664: 'Open' : cannot convert parameter 3 from 'enum RecordOpenOptionsEnum' to 'enum CursorTypeEnum'
Conversion to enumeration type requires an explicit cast (static_cast, C-style cast or function-style cast)。请帮忙解决
...全文
88 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
slyrabbit 2009-08-12
  • 打赏
  • 举报
回复
数据库字段要用[],关键字标示
crossord 2009-07-29
  • 打赏
  • 举报
回复
"select Age from DemoTable where Name=\'%s\'"
要加单引号吧
wy2001wy 2009-07-29
  • 打赏
  • 举报
回复
adOpenAsync不是一个类型,我这看到的只有adOpenUnspecified、adOpenForwardOnly、adOpenKeyset、adOpenDynamic、adOpenStatic这几种。
tiger波波 2009-07-29
  • 打赏
  • 举报
回复

试试
StrSql.Format("select [Age] from DemoTable where [Name]=%s",StrName);

whj1001 2009-07-28
  • 打赏
  • 举报
回复
m_pRecordset->Open(bsSql,m_pConnection.GetInterfacePtr(),adOpenAsync,adLockOptimistic,adCmdText);

把bsSql改成(_variant_t)bsSql试试

4,017

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧