怎么用sql动态选择表中的字段(谢谢各位了)(100分)

  • 主题发起人 主题发起人 supergq
  • 开始时间 开始时间
S

supergq

Unregistered / Unconfirmed
GUEST, unregistred user!
一个字段较多的表我想动态选出其中有用的字段.书上的那些例子都是在where后面动态使用,
而怎么动态选择字段呢?
例: select aa,bb,cc from jbzl where aa=:mm
这样where后面是动态的但select后面的是静态的,我应该怎么做,请各位帮忙.
 
//首先读取字段列表,把它们放在CheckListBox提供交互选择
然后把选取的字段读取出来构造Sql语句
参考我在此贴中的代码,也许能解决你的问题。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1352065
 
动态的写SQL语句就行了
例:
procedure ...
var
myQuery:TQuery;
cosnt
SQLStr='select %s from jbzl where aa=%s';
begin
myQuery:=TQuery.Create(Self);
myQuery.DataBaseName:=...;
myQuery.SQL.Add(Format(SQLStr,['aa,bb,cc','aa'];
myQuery.open;
end
在中括号的第一个参数是 你需要的字段,用逗号隔开,如'aa,bb,cc'或'aa,bb'
第二个参数就是你的aa字段的值了.
多用用format函数,很好用的,尤其是在写动态的sql语句的时候
enjoy it
 
将所有字段列表放到一个CheckList里,打上对号的就,否则就不用。
for x:=0 to CheckList.count-1 do
begin
if CheckList.Checked[x] then //被选的字段
Sql :=Sql+', '+ CheckList.items[x];
end;
System.Delete(Sql,1,1) //去掉第一个',';
Sql:='Select '+Sql+' where......';

得到了一个完整的SQL语句.
 
你们的方法都不错啊.还有别的方法吗.
 
没了。 就是动态生成sql语句一条路。
 
多人接受答案了。
 
后退
顶部