一个sql语句问题?
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




