按列展开!!字段名???!!!!(200分)

  • 主题发起人 主题发起人 coolrain
  • 开始时间 开始时间
C

coolrain

Unregistered / Unconfirmed
GUEST, unregistred user!
1.
Table a:
a1
1
2
3
l
.
.

Table b:
b1 b2 b3 .......bn
1 2 3 ........n
如何得到以上的结果,用sql .

2
如何动态调用字段???
insert table(a1)
values(..)

若想要insert table(a2)
values(..)
难道一定要重写一次吗?有类似于'a'+IntToStr(i)那样的形式吗??
 
没人能回答???意思不明,还是分不够?
 
第一个不是很清楚,无法通过DELPHI完成,如果是我的话,我会选择在数据库端通过
PROCEDURE来完成,当然这和你所用的数据库有关。
第二个取决于你是如何对数据库进行操作的。
按你的说法,你是先形成SQL字符串再对数据库操作,那么你的作法完全可行。
 
to armyjiang:
两个都要求在数据库端做。
都要用sql。
我的数据库为sql server.
 
sql的动态执行可以解决
 
SQL Server中,Sp_Columns your_table_name这个procedure可以返回你的表的所有字段
然后,你可以用一个循环语句可以生成Insert语句
比如:
fldlst:='';
with Query1 do begin
SQL.Add('Sp_Columns your_table_name');
try Open except end;
while not Eof do begin
fldlst:=','+FieldByName('COLUMN_NAME').Asstring;
Next
end;
Close;
end;
delete(fldlst,1,1);
fldlst就是一个字段列表,内容类似于: b1,b2,b3,b4...
insert into table(fldlst) values(...)
就可以了
values怎么生成,你应该知道了吧?
 
请你用两个DATASET 把 属于 A(A,B,C,D) 那一层的记录 和 属于 A1(A1,A2,B1,B2,C1,C2)
那一层的记录分别用两个TQUERY 筛选出来先 然后再 建立主从关系(可以的话),然后
把从表的数据按你想的顺序 用代码 自己INSERT啦!千万不要忘记把TQUERY.CACHEUPDATE
变成 TRUE 和 用TUpdateSQL啊!!
 
请你用两个DATASET 把 属于 A(A,B,C,D) 那一层的记录 和 属于 A1(A1,A2,B1,B2,C1,C2)
那一层的记录分别用两个TQUERY 筛选出来先 然后再 建立主从关系(可以的话),然后
把从表的数据按你想的顺序 用代码 自己INSERT啦!千万不要忘记把TQUERY.CACHEUPDATE
变成 TRUE 和 用TUpdateSQL啊!!
 
不是很明白你的要求?!
你的每一个问题:你的列字段的个数是固定的吗?如果是固定的可以一次写进去呀。
每二个问题:字段的动态调用当然是可以的,你用函数:Table.fieldDsf吧,这个应该是可以的。
 
好了,说清楚点。
我是要做一个报表,想生成一个临时表。
这个临时表中有10列用来记录动态产生的数据,
Table b:
b1 b2 b3 .......bn
1 2 3 ........n(n=10)

而需要的数据可以在另一个表中查到,它们都放到一个列上。(当然,列的记录数不确定,
但小于10条)

Table a:
a1
1
2
3
m
.
.

现在最好是做一个procedure,而不在前端做太多的动作。
另外第二个问题,也是要求在sql server端:
如果我有100列,难道我要insert 100次??
我想做个循环。
declare @tempi int
set @tempi=1
while @tempi<100
begin
insert table(????)
values(xxx)

end
现在的问题是,怎样动态表达字段名,才让sql server承认??
(假定字段名形如:A1,A2,A3.....An,能否有办法只增加n值,而组成新的字段名??!!!)
最好以上两个问题都在server端解决,不要到client。第二个问题,delphi下有好的办法也可。
分不够,尽管开口。


 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部