CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

一个sql语句问题?

楼主tanyun1111(TY)2004-04-03 08:20:57 在 Delphi / 数据库相关 提问

SQL.Text   :=   'select   *   from   table   where   stano="'   +   Trim(Edit1.Text)   +   '"';想问下这个语句中的"和'"'   号什么意思,为什么要加"号?可否这样写  
  sql.text:='select   *   from   table   where   stano='+Trim(Edit1.text); 问题点数:20、回复次数:15Top

1 楼xiaosq2008(挂在空中的鱼)回复于 2004-04-03 08:26:02 得分 0

这样写是不行的,这种方法容易出错,不妨试试我这种方法:  
  txtsql:string;  
   
  txtsql:=''select   *   from   table   where   stano=:Param);  
  sql.text:=txtsql;  
  parambyname('Param').asstring:=trim(edit1.text);  
  Top

2 楼insert2003(高级打字员)回复于 2004-04-03 08:30:19 得分 0

不行的,SQL语句中变量是这样写的  
  Top

3 楼yongxin800()回复于 2004-04-03 08:32:25 得分 5

SQL.Text   :=   'select   *   from   table   where   stano='   +chr(39)+   Trim(Edit1.Text)   +chr(39)  
  chr(39):代表一个单引号;Top

4 楼qizhanfeng(glacier)回复于 2004-04-03 08:33:05 得分 5

不行  
  用QuotedStr  
  sql.text:='select   *   from   table   where   stano='+QuotedStr(Trim(Edit1.text));  
   
  Top

5 楼yyu423(风雪男儿)回复于 2004-04-03 09:03:23 得分 0

我想不行的.具体点我不好表达  
  我不知道你的条件语句后面需要跟什么类型,但SQL本身也有类型之间的转换.  
  '''......   ''''用到了转换符,不好意思我也很菜的而且很久没动DELPHI了说的不好  
  你可以这样试一下用个EDIT,一个COMMAND控件  
  把这条件写在COMMAND事件中,把显示的字符放在EDIT中就可以看到显示出来是什么字符串了.  
  这与SQL中的还是相符的  
  Top

6 楼hksl(zzj)回复于 2004-04-03 09:05:22 得分 0

也可以这样  
  SQL.Text   :=   'select   *   from   table   where   stano='   +#39+   Trim(Edit1.Text)   +#39  
   
  这里的#39   就是'   的键值  
   
  Top

7 楼azsoft(Try my best)回复于 2004-04-03 09:13:41 得分 5

var   SQLtext:String;  
   
  SQLText   :=   'select   *   from   table   where   stano='''+   Trim(Edit1.Text)   +'''   ';  
   
  可以跟踪一下。  
   
  结果为   select   *   from   table   where   stano='aaaass'   的格式就正确了。Top

8 楼azsoft(Try my best)回复于 2004-04-03 09:14:29 得分 0

还有  
  var   SQLtext:String;  
   
  SQLText   :=   'select   *   from   table   where   stano=''%'+   Trim(Edit1.Text)   +'%''   ';Top

9 楼rong12345(rong12345)回复于 2004-04-03 11:23:16 得分 0

sql.text:='select   *   from   table   where   stano='+Trim(Edit1.text);  
  oracle   也可以Top

10 楼BlackSeptember(寂静)回复于 2004-04-03 17:52:16 得分 0

那样写当然不行出现在了语法错误,还有句子里的trim()函数是去空格函数既然使用它,则可以添加模糊查询,只要在trim()两边加上两个#号就可以了,这样就可以实现模糊查询。Top

11 楼lmjzw(显示器不亮!)回复于 2004-04-03 18:46:17 得分 0

可以这样写!  
  加一个query  
  query1.close;  
  query1.sql.clear;  
  query1.sql.add('select   *   from   table   where   stano='+Trim(Edit1.text));Top

12 楼tanyun1111(TY)回复于 2004-04-04 18:02:58 得分 0

各位  
    我是问"这个双引号的意思和在这里的作用Top

13 楼Stiven_PFan(爱卿儿)回复于 2004-04-04 18:41:10 得分 5

你的SQL语句中要引用字段STANO字段,而该字段是字符型的,假设你给定edit1.text的值是  
  'abc',并且你不用'''',那么组合成一个完整的语句后变为  
  select   *   from   table   where   stano=abc你想想,这条语句能符合SQL的语法规定吗,SQL语法规定应为select   *   from   table   where   stano='abc',EDIT1.TEXT得出的结果并不包含'   ',所以你要自行加上去。  
   
   
   
  还有,你给出的例子中写错了,里面不是用双引号,而应该是两个单引号Top

14 楼tanyun1111(TY)回复于 2004-04-04 19:32:47 得分 0

TO:Stiven_PFan  
      你说的有道理,但我看的那语句就是双引号,如果去掉两个双引号或改成单引号就得不到真确的结果,不解.Top

15 楼hhzqf1980(hh)回复于 2004-04-05 11:48:25 得分 0

'select   *   from   table   where   stano='+Trim(Edit1.text);是可以的  
  但是你的第一钟写法是错误的,都是单引号  
  Top

相关问题

  • 求SQL语句
  • sql语句。
  • sql语句?
  • sql 语句?
  • 求SQL语句
  • ***求SQL语句***
  • sql语句??
  • sql语句
  • sql语句
  • SQL语句

关键词

  • 语句
  • sql
  • 单引号
  • 双引号
  • edit1
  • txtsql
  • trim
  • 不行
  • tablewhere stano
  • chr

得分解答快速导航

  • 帖主:tanyun1111
  • yongxin800
  • qizhanfeng
  • azsoft
  • Stiven_PFan

相关链接

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

广告也精彩

反馈

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