SQL 中如何用变量?(20分)

  • 主题发起人 主题发起人 dyc
  • 开始时间 开始时间
D

dyc

Unregistered / Unconfirmed
GUEST, unregistred user!
SQL 中如何用变量?

有一句:
SELECT * FROM AAA WHERE ...
此处AAA 是一变量,此句如何写?是
SELECT * FROM 'AAA' WHERE ...吗?
编译出错.
 
select * from &aaa where ...试试
 
应如此用!
SQL.add('select * from '+aaa+' where..' )
 
变量得在嵌入式SQL才能用,必须先声明,用@开头。
但是From后得跟表名,好像不应是变量。
另外,在动态SQL中,可用参数的传递来解决一些问题。
 
是在Delphi中的Query里用吗?好像刚回答过这一问题。
Query1.SQL.Clear;
Query1.sql.Add(Format('select * from %s',[Edit1.Text]));
Query1.open;
 
aaa是一动态获得文件名
 
用wgzhang的方法
 
Query1.sql.Add(Format('select * from %s where...',[Edit1.Text]));
这里没有aaa,可有Edit1.Text哦.
 
首先, 这是概念问题, 变量是指动态SQL语句中的where子句中的
可变参数部分,变化的表名或域名一般称为宏替换

对于变量的使用如下:
select * from tablename where id = :ID

而对于宏替换,Delphi本身并不提供,我记得曾下载了一个带有此功能的构件,
现在不知扔在哪儿了,好象是在<a href="http://sunsite.icm.edu.pl/delphi/">Delphi Super Page</a>上找到的
不过,用<font color="red">menxin</font>或<font color="red">wgzhang</font>的方法就足够了
 
在TQuery的SQL属性中写
SELECT * FROM AAA WHERE ...
再在TQuery的Param中设置AAA为Input
然后在程序中为TQuery.Param(0)赋值
最后TQuery.open即可
 
后退
顶部