CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

关于Like用法?

楼主plhui(天外飞仙)2004-12-02 09:43:48 在 Delphi / 数据库相关 提问

语句如下:  
    AdoQuery1.SQL.Add('Select   图书编号,书名,作者,类名,出版社,定价   From   图书信息   A,图书类别   B');  
    AdoQuery1.SQL.Add('Where   (A.书名   Like   :书名)   and   A.类别=B.类别');  
    AdoQuery1.Parameters.ParamByName('书名').Value:='%'+Edit1.Text+'%';  
  其中数据库中有书名为:‘sds’,和‘ABC’的书。当在Delphi6下运行我做的程序时,输入‘s’,能够查到  
  纪录‘sds’,而输入‘A’时却没有纪录,是何原因?但是在查询分析器内可以正常。  
  问题点数:100、回复次数:17Top

1 楼BoxFan(译作:饭盒?)回复于 2004-12-02 09:48:19 得分 10

if   (EdtRegion.Text<>'')   then  
          SqlParam:=SqlParam+'   and   Region   like   ''%'+EdtRegion.Text+'%''';  
  Top

2 楼IwantFlay(小飞)回复于 2004-12-02 09:56:09 得分 10

我想可能不是你的sql语句出错.   我注意到你是从两张表中通过关联得到数据的.   A.类别=B.类别  
  我想你可能需要检查一下   书名为   'ABC'   的那条记录的类别在   图书类别   表   中是否有相同类别的记录存.   :)Top

3 楼coeltdit(每天多顶几下----->>>大虾就是这样练成的)回复于 2004-12-02 09:59:08 得分 10

(1)Select   图书编号,书名,作者,类名,出版社,定价   From   图书信息   A,图书类别   B   Where   A.类别=B.类别  
        是不是符合Where   A.类别=B.类别条件的数据集中没有ABC这条记录??  
   
  (2)Edit1.Text中输入ABC之前有空格??       Trim(Edit1.Text).Top

4 楼pengxuan(网虫先生)回复于 2004-12-02 10:00:53 得分 10

AdoQuery1.Parameters.ParamByName('书名').Value:=''''+'%'+Edit1.Text+'%'+'''';Top

5 楼seekmydoom(靠灌水混日子)回复于 2004-12-02 10:03:41 得分 10

赞成楼上的解释!在图书信息表   A中有含有A的书名,但也许在图书类别   B没有和A类别相关的数据Top

6 楼whythinkwhy(小生)回复于 2004-12-02 10:04:32 得分 0

有空格的话也不会显示的Top

7 楼zzlazio(sritsb)回复于 2004-12-02 10:04:40 得分 10

Select   图书编号,书名,作者,类名,出版社,定价   From   图书信息   A,图书类别   B   Where   A.书名   Like   ''%'+Edit1.Text+'%'''   and   A.类别=B.类别'Top

8 楼xfgncit98(叶落思乡)回复于 2004-12-02 10:16:00 得分 10

我想可能不是你的sql语句出错.   我注意到你是从两张表中通过关联得到数据的.   A.类别=B.类别  
  我想你可能需要检查一下   书名为   'ABC'   的那条记录的类别在   图书类别   表   中是否有相同类别的记录存.   :)  
  ---------------------------------------------  
  同意,你的A.类别=B.类别是什么意思?你的表的结构是怎么定义的?以及你要实现的功能是什么?Top

9 楼ysai(所有真的都是假的真,所有假的都是真的假)回复于 2004-12-02 10:17:42 得分 0

猜测:参数截断问题.  
  用事件探查器看看ADO提交到SQLSERVER的SQL语句,其中的参数是否被截断了Top

10 楼cctv1111(小子)回复于 2004-12-02 11:46:07 得分 0

好像不是你的語句錯誤可能是你兩個表的數據關聯有問題(沒有對應關係)Top

11 楼BigAngell(学而不思则罔 思而不学则殆)回复于 2004-12-02 11:52:15 得分 0

但是在查询分析器内可以正常。  
   
  //////////////////////////////////  
   
  楼主都说了,在查询分析器内是正常的!看看楼上几位的回答!  
   
  我想问一下楼主,你用的啥数据库,Access   or   MS   SQL   Server   ?Top

12 楼ysai(所有真的都是假的真,所有假的都是真的假)回复于 2004-12-02 12:13:34 得分 5

>>楼主都说了,在查询分析器内是正常的!看看楼上几位的回答!  
   
  >>我想问一下楼主,你用的啥数据库,Access   or   MS   SQL   Server   ?  
   
  质疑别人的回答.....不过  
  ACCESS好象没有查询分析器吧?Top

13 楼ahuige(灰不遛秋(前半身学医后半身学统计))回复于 2004-12-02 17:53:49 得分 0

有写查询的SQL语句的东西Top

14 楼BigAngell(学而不思则罔 思而不学则殆)回复于 2004-12-03 08:59:30 得分 0

质疑别人的回答.....不过  
  ACCESS好象没有查询分析器吧?  
   
  ////////////////////////////  
   
  笑话!Top

15 楼ysai(所有真的都是假的真,所有假的都是真的假)回复于 2004-12-03 11:38:57 得分 10

BigAngell(风雨英雄)  
   
  质疑别人的回答.....不过  
  ACCESS好象没有查询分析器吧?  
   
  ////////////////////////////  
   
  笑话!  
   
  -----------------------------------  
  据我所知,ACCESS只有一个查询设计器,SQL   SERVER倒是有个查询分析器,难道我用的OFFICE   2003不够新?您用的ACCESS2005或者更高版本?还带了个查询分析器?请指教...Top

16 楼altans(龙纹剑)回复于 2004-12-03 12:56:26 得分 5

楼主你用的是sqlserver吧,仔细查查ABC的数据类型,如果是nvarchar的话,最好改成varchar再44Top

17 楼whbo(王红波(年轻人,要有所作为))回复于 2004-12-03 13:20:36 得分 10

AdoQuery1.SQL.Add('Where   (A.书名   Like   :书名)   and   A.类别=B.类别');里面括号去了  
  感觉还是sql的问题,应该是那儿写错了..  
  Top

相关问题

  • &*用法~~
  • setfocus的用法
  • icmp.dll的用法
  • Recordset的用法。
  • DataGrid的用法?
  • CDONTS.dll的用法???
  • EnumChildWindows的用法?
  • ListView的用法?
  • Request.QueryString的用法?
  • CMSComm的用法?

关键词

  • 分析器
  • 图书
  • 查询
  • 语句
  • sql
  • 数据
  • 数据库
  • access
  • 作者
  • 信息

得分解答快速导航

  • 帖主:plhui
  • BoxFan
  • IwantFlay
  • coeltdit
  • pengxuan
  • seekmydoom
  • zzlazio
  • xfgncit98
  • ysai
  • ysai
  • altans
  • whbo

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo