AdoQuery..Parameters问题求助2

dragmanII 2004-12-27 11:38:36
上次感谢各位的帮忙,希望各位不要因为我因 过圣诞没空上网而晚解贴给分 而产生情绪

这次又有个问题请教大家:
adoquery.close;
adoquery.sql.clear;
adoquery.sql.add('select * from :table');
adoquery.parameters.ParamByName('table').Value := 'user' + 'table';
adoquery.open;
执行adoquery.open是弹出异常提示“invalid table name”,我修改成如下时,正确执行,如果我一定要用adoquery的parameter参数时,我应该怎么修改这个问题?
strtable := 'usertable';
adoquery.close;
adoquery.sql.clear;
adoquery.sql.add('select * from ' + strtable);
adoquery.open;


...全文
240 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ymlrw 2005-01-15
  • 打赏
  • 举报
回复
adoquery.close;
adoquery.sql.clear;
adoquery.sql.add('select * from :table');
adoquery.parameters.ParamByName('table').Value := 'usertable';
adoquery.open;
luckyly 2005-01-02
  • 打赏
  • 举报
回复
试试加行
adoquery.close;
adoquery.sql.clear;
adoquery.sql.add('select * from :table');
adoquery.prepare;
adoquery.parameters.ParamByName('table').Value := 'user' + 'table';
adoquery.open;
dragmanII 2004-12-27
  • 打赏
  • 举报
回复
表明不能作为变量用吗?各位手头有没有什么文档中有介绍这个问题?
sunkevin 2004-12-27
  • 打赏
  • 举报
回复
表名不能做为变量
gxgyj 2004-12-27
  • 打赏
  • 举报
回复
或:
with adoquery1 do
begin
close;
sql.clear;
sql.add('select * from '+edit1.text);///
sql.open;
end;
hatum 2004-12-27
  • 打赏
  • 举报
回复
改成:
strtable := 'usertable';
adoquery.close;
adoquery.sql.clear;
adoquery.sql.add('select * from '''+strtable+''' ');
adoquery.open;

每次把你要查询的表名赋值给strtable 就可以了
aiq 2004-12-27
  • 打赏
  • 举报
回复
好像不能那样用,你可以定义一个变量,如
var
ls_sql,strtabel:string;
begin
ls_sql:='select * from'+strtable;
adoquery.close;
adoquery.sql.clear;
adoquery.sql.add(ls_sql);
adoquery.open;
end;
这样你每次的SQL就会根据自己的需要改变了
postren 2004-12-27
  • 打赏
  • 举报
回复
应该是表名不能用参数传递

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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