Query查询的简单问题,急!急!急!在线等待

PrettyMurphy 2003-10-16 04:53:24
各位高手看下这段代码有什么问题?

with aQuery do
begin
Close;
SQL.Clear;
SQL.Add('Select * From SelectObj Where RoomID=:A');
Params.ParamByName('A').AsString:=aBFID;
ExecSQL;
end;

aBFID为一个String变量,值为:'001',有一个好惨的事。如果这样:

SQL.Add('Select * From SelectObj Where RoomID="'+aBFID+'"');

运行到这一行时会报,"参数不足,期待是1" 这个错。
而如果用上面说的那种方法,却查不到指定的结果。怎么办?这是什么问题?

不是ADO是BDE的QUERY,我用的是DELPHI7+ACCESS 2000 请高手帮忙,谢谢!
...全文
83 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
angle097113 2003-10-16
  • 打赏
  • 举报
回复
aquery.sql.add('select * from selectobj where roomid='+#39|+abfid+#39)
Alanwn 2003-10-16
  • 打赏
  • 举报
回复
open
dickeybird888 2003-10-16
  • 打赏
  • 举报
回复
你的参数的写法是没有错误的,而另一种有错误
aquery.sql.add('select * from selectobj where roomid='''+abfid+'''')
不要用双引号,而要用两个单引号,至于你用参数的方法查询不出来数据,估计你查错了,
或者查询条件写错了
而且提醒你select 要用open;而其他比如insert,update,delete的时候是用execsql
qingke21 2003-10-16
  • 打赏
  • 举报
回复
aBFID:=

with aQuery do
begin
Close;
SQL.Clear;
SQL.Add('Select * From SelectObj Where RoomID=:A');
ParamByName('A').AsString:=aBFID;
IF Not Prapared then Prepare;
Open;
end;
dancedog 2003-10-16
  • 打赏
  • 举报
回复
按楼上的方法试试。
kevinwzh 2003-10-16
  • 打赏
  • 举报
回复
Where RoomID='+''''+aBFID+'''');
delphi_xizhousheng 2003-10-16
  • 打赏
  • 举报
回复
在窗体设计器中打开aQuery的Parameters属性,清空所有设计期加的参数
PrettyMurphy 2003-10-16
  • 打赏
  • 举报
回复
哦,试了一下,BDE的可以。

ADOQUERY不行。

我知道open和execsql的区别的,上面是我COPY错了
jace2003 2003-10-16
  • 打赏
  • 举报
回复
进行update,insert,delete等操作才用execsql,select操作用open;
说好不能打脸 2003-10-16
  • 打赏
  • 举报
回复
with aQuery do
begin
Close;
SQL.Clear;
SQL.Add(format('Select * From SelectObj Where RoomID=%s',[dataasstring]));
Open;
end;
tiexinliu 2003-10-16
  • 打赏
  • 举报
回复
1. 如果要返回数据集用open,反之用execsql
  • 打赏
  • 举报
回复
除了楼上的说法外还有:
SQL.Add('Select * From SelectObj Where RoomID="'+aBFID+'"');
改成:
SQL.Add('Select * From SelectObj Where RoomID='+''''+aBFID+'''');
PrettyMurphy 2003-10-16
  • 打赏
  • 举报
回复
上面写错了,不是ExecSQL, 是 Open

2,495

社区成员

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

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