回 帖 发 新 帖 刷新版面

主题:请教一个中文模糊查询的问题

      str1="select * from 饭店联系方式表 where 名称 like '*大*'";   

      data->ADOQuery10->Close();
      data->ADOQuery10->SQL->Clear();
      data->ADOQuery10->SQL->Add(str1);
      data->ADOQuery10->Open();

我用  select * from 饭店联系方式表 where 名称 like '*大*'  在Access 里查询好使,但在c++builder里用如上形式写出的代码却什么也查不出来,如果用str1="select * from 饭店联系方式表 where 名称 = '大'";就能得出查询结果.
请教高手帮我解决这个问题,非常感谢.

回复列表 (共5个回复)

沙发

问题可能出在"*"上。*和?可用于某些数据库的通配符。但SQL只能用%号做通配符。建议将原SQL语句改为:
      str1="select * from 饭店联系方式表 where 名称 like '%大%'"; 
没上机测试,请楼主自己试一下。

如果还是不行,可在Access里建立相应的查询,再将程序的ADOQuery连接到该查询。

板凳


感谢ebowangzm,但是这个方法也不行,我以前就是用的%,但ACCESS里用的通配符就是*,关于在ACCESS里建立查询,然后 在CB里调用我没有做过,请给出具体的方法,非常感谢!

3 楼

一、在Access里建立查询:
  在Access的主面板里,点“查询”,再点”新建“,在SQL设计视图里,输入相应SQL语句,如:select * from 饭店联系方式表 where 名称 like '*大*';运行无误后保存查询(假设查询名为MyQuerry);

二、在ADOQuerry里连接查询:
 AnsiString MySql="select * from MyQuerry";
  DOQuery1->Close();
  ADOQuery1->SQL->Clear();
  ADOQuery1->SQL->Text=MySql;
  ADOQuery1->Open();

4 楼

你好.我是全职网赚工作者.
如果你有时间有电脑.会打字.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系 QQ909065437

5 楼

这是一个互助的模式。
不推广人也有钱赚的。分A B两个网。
不推广的人在A网。推广的人 在B网。
B网推广的人帮助A网。
A网拿6000元出局。
B网就多了。
C易特元亨QQ919169870
奖励制度 
C易特更多资料C易特元亨QQ919169870
http://blog.sina.com.cn/cyite6
C易特奖励制度
http://blog.sina.com.cn/s/blog_6b2561440100l5r8.html

我来回复

您尚未登录,请登录后再回复。点此登录或注册