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

w78z 2003-11-01 07:02:32
。。。。。。。
偶在面板上放了 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什么的。。郁闷死了
。。
大哥们帮忙解释解释好吗?
谢谢了。。
...全文
23 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
w78z 2003-11-01
  • 打赏
  • 举报
回复
oooo哦哦哦哦哦哦。 。。
知道了。。
全部都是单引号。。
而不是“”这种符号。。
再次感谢。。。
:)
w78z 2003-11-01
  • 打赏
  • 举报
回复
感谢大家caohonglong2000(chl) 和things(平)(凡)
。。。照着改终于成功了。。
心得:1,test后不加空格。也成。。看来加一个完全时出与美观的考虑啊
2,张三两边加括号,也成。。看来时为了符合简洁感。
但是。我把查询条件改为:add(' where FirstName="li"');
或者add('where FirstName=(li)');
却提示参数不足。。期望值为2。。
。。。。。。。。。。
继续郁闷中。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。
jingbianfc 2003-11-01
  • 打赏
  • 举报
回复
用#39吧,还有%用#27,看下高手的代码都是这样的
chl_ccssddnn 2003-11-01
  • 打赏
  • 举报
回复
原因也写一下:
sql语句执行应该是:select * from test where chinesename='张三';
但如何在delphi中将她写成字符串呢?就是用上面的方法:
=后面的两个单引号表示一个单引号字符,同理张三后面的接着两个单引号也是这个意思,而最后一个单引号就是与where前面的相对应,表示中间的是字符串

Are you OK?
things 2003-11-01
  • 打赏
  • 举报
回复
sorry,忘了把张三两边的括号去掉了。
with query do
begin
Close;
with SQL do
begin
clear;
Add('Select * From test ');
Add('Where Chinesename=''张三''');//在''中的连续两个''在SQL语句中代表一个'
end;
Open;
end;
things 2003-11-01
  • 打赏
  • 举报
回复
with query do
begin
Close;
with SQL do
begin
clear;
Add('Select * From test ');//test后加一个空格或换行符
Add('Where Chinesename=(''张三'')');//张三两边应各加两个单引号
end;
Open;
end;
chl_ccssddnn 2003-11-01
  • 打赏
  • 举报
回复
Add('Where Chinesename=(:张三)');错在这里
改为:
add('where chinesename=''张三''');
这样可以查找到张三这条记录了。

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧