TQUERY。。。让我郁闷了。。求救
。。。。。。。
偶在面板上放了 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




