用MFC ODBC创建数据库时遇到的有关查询的问题

sjly 2002-03-03 05:28:38
程序中有一个对话框,它与变量m_findname关联,函数OnSeekName() 响应一菜单查询命令,程序要求以姓名为关键字查询

void CTryView::OnSeekName()
{
char filter[60];
CString m_selecte;
CFindNameDialog cDialog;
if(cDialog.DoModal()==IDOK)
{
m_selete=cDialog.m_findname;
wsprintf(filter,"'%s'",m_selecte);
m_pSet->m_strFilter=filter;
m_pSet->Requery();
if(m_pSet->IsEOF())
AfxMessageBox("没有这个姓名!");
else UpdateData(FALSE);
}
}
但无论输入什么关键字,显示的都是第一个记录,请问这是什么问题呢?
...全文
60 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenxin0128 2002-03-04
  • 打赏
  • 举报
回复
Windows 通配符和SQL通配符不一致,用下面的函数进行转换
void TransWildcard(CString& strInput)
{ strInput.Replace('*','%');
strInput.Replace('?','_');
}
sjly 2002-03-03
  • 打赏
  • 举报
回复
显示的总是数据库的第一个记录,如果改为
wsprintf(filter,"姓名='%s'",m_selete);
再在对话框中输入姓名(如输入: 李强),则出现警告:
(语法错误(操作符丢失)在查询表达式‘姓名=‘李强’’中)
请问应该如何改正?
sjly 2002-03-03
  • 打赏
  • 举报
回复
显示的总是数据库的第一个记录,如果改为
wsprintf(filter,"姓名='%s'",m_selete);
再在对话框中输入姓名( 如输入:李强 ),则出现警告:
( 语法错误(操作符丢失)在查询表达式‘姓名=‘李强’’中 )
请问应该如何改正?
qhq800 2002-03-03
  • 打赏
  • 举报
回复
CRecordset类中
m_strFilter成员变量表示sql语句中的where的功能
m_str成员变量表示sql语句中的order by从句的功能
wenxin0128 2002-03-03
  • 打赏
  • 举报
回复
我刚学vc,想请教你一个问题,如何实现MFC ODBC创建数据库的查询功能,鉴于我的水平比较差,你可否说的详细些
sjly 2002-03-03
  • 打赏
  • 举报
回复
显示的总是数据库的第一个记录,如果改为
wsprintf(filter,"姓名='%s'",m_selete);
再在对话框中输入姓名(如输入“李强”),则出现警告:
“语法错误(操作符丢失)在查询表达式‘姓名=‘李强’’中”
greenery 2002-03-03
  • 打赏
  • 举报
回复
条件好象应该是
name = 'yourname'
你好像只写了yourname进去
? wsprintf(filter,"'%s'",m_selecte);是得到什么字符串?

某鸟 2002-03-03
  • 打赏
  • 举报
回复
什么办法?
使用批量数据处理.
某鸟 2002-03-03
  • 打赏
  • 举报
回复
但无论输入什么关键字,显示的都是第一个记录,

你是说,显示的都是符合条件的第一个纪录?
如果是的话,那当然!
没错!
就是这样,至于你要显示符合条件的所有纪录,就要换个办法了.
erehw 2002-03-03
  • 打赏
  • 举报
回复
m_selete=cDialog.m_findname;
wsprintf(filter,"你的字段='%s'",m_selecte);

4,017

社区成员

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

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