• 主页
  • 招聘
  • 语言基础/算法/系统设计
  • 数据库相关
  • 图形处理/多媒体
  • 网络通信/分布式开发
  • VCL组件开发及应用
  • Windows SDK/API

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;


...全文
205 点赞 收藏 8
写回复
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日
表明不能作为变量用吗?各位手头有没有什么文档中有介绍这个问题?
回复 点赞
gxgyj 2004年12月27日
或:
with adoquery1 do
begin
close;
sql.clear;
sql.add('select * from '+edit1.text);///
sql.open;
end;
回复 点赞
sunkevin 2004年12月27日
表名不能做为变量
回复 点赞
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日
应该是表名不能用参数传递
回复 点赞
发动态
发帖子
Delphi
创建于2007-08-02

1464

社区成员

26.2w+

社区内容

Delphi 开发及应用
社区公告
暂无公告