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

TQUERY。。。让我郁闷了。。求救

楼主w78z(秋风细雨)2003-11-01 19:02:32 在 Delphi / 数据库相关 提问

。。。。。。。  
  偶在面板上放了     DBGRID,DataSourece,Tquery,和一个BUTTON。。  
  在设计期间将Tqueryde的SQL设置为select   *   from   test  
  然后在BUTTON的单击响应事件里些着:  
        with   query   do  
        begin  
        Close;  
        with   SQL   do  
        begin  
        clear;  
        Add('Select   *   From   test');  
        Add('Where   Chinesename=(:张三)');//也曾尝试改为:'where   FirstNmae="li"';  
        end;        
        Open;  
        end;                                    
  ~~~~~~~~  
  运行时通过。但一点button   ..就出错。。说什么期望值为1什么的。。郁闷死了  
  。。  
  大哥们帮忙解释解释好吗?  
  谢谢了。。 问题点数:40、回复次数:7Top

1 楼caohonglong2000(chl_csdn)回复于 2003-11-01 19:07:35 得分 20

Add('Where   Chinesename=(:张三)');错在这里  
  改为:  
  add('where   chinesename=''张三''');  
  这样可以查找到张三这条记录了。Top

2 楼things(Loving You)回复于 2003-11-01 19:08:31 得分 20

with   query   do  
      begin  
      Close;  
      with   SQL   do  
      begin  
          clear;  
          Add('Select   *   From   test   ');//test后加一个空格或换行符  
          Add('Where   Chinesename=(''张三'')');//张三两边应各加两个单引号  
      end;        
      Open;  
  end;Top

3 楼things(Loving You)回复于 2003-11-01 19:11:17 得分 0

sorry,忘了把张三两边的括号去掉了。  
  with   query   do  
      begin  
      Close;  
      with   SQL   do  
      begin  
          clear;  
          Add('Select   *   From   test   ');  
          Add('Where   Chinesename=''张三''');//在''中的连续两个''在SQL语句中代表一个'  
      end;        
      Open;  
  end;  
  Top

4 楼caohonglong2000(chl_csdn)回复于 2003-11-01 19:11:34 得分 0

原因也写一下:  
  sql语句执行应该是:select   *   from   test   where   chinesename='张三';  
  但如何在delphi中将她写成字符串呢?就是用上面的方法:  
  =后面的两个单引号表示一个单引号字符,同理张三后面的接着两个单引号也是这个意思,而最后一个单引号就是与where前面的相对应,表示中间的是字符串  
   
  Are   you   OK?Top

5 楼jingbianfc(『静⊙变』)回复于 2003-11-01 20:02:43 得分 0

用#39吧,还有%用#27,看下高手的代码都是这样的Top

6 楼w78z(秋风细雨)回复于 2003-11-01 22:05:16 得分 0

感谢大家caohonglong2000(chl)   和things(平)(凡)    
  。。。照着改终于成功了。。  
  心得:1,test后不加空格。也成。。看来加一个完全时出与美观的考虑啊  
              2,张三两边加括号,也成。。看来时为了符合简洁感。  
  但是。我把查询条件改为:add('   where   FirstName="li"');  
          或者add('where   FirstName=(li)');  
  却提示参数不足。。期望值为2。。  
  。。。。。。。。。。  
  继续郁闷中。。。。。。。。。。。  
  。。。。。。。。。。。。。。。。。。。。。Top

7 楼w78z(秋风细雨)回复于 2003-11-01 22:28:09 得分 0

oooo哦哦哦哦哦哦。     。。  
  知道了。。  
  全部都是单引号。。  
  而不是“”这种符号。。  
  再次感谢。。。  
  :)  
  Top

相关问题

  • !!!关于TQUERY,帮我看看
  • 为何我的TQuery为只读?
  • TQuery的问题
  • Tquery 问题
  • Tquery and DBgrid 问题
  • Tquery 的问题
  • TQuery问题
  • TQuery问题
  • 是不是我的BDE连接不成功导致我的TQUERY不成功!
  • 刚学DELPHI,谁告诉我TQUERY,TTABEL,ADOQUERY1,ADOTABEL,DATABASE他们的区别

关键词

  • sql
  • 单引号
  • chinesename
  • 郁闷
  • 改为
  • where
  • li
  • do begin
  • clear
  • query

得分解答快速导航

  • 帖主:w78z
  • caohonglong2000
  • things

相关链接

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

广告也精彩

反馈

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