按表B的字段名称配置实现表A的中文字段标题显示?
如果是客户端的DBgrid里,我的应用都是这么干的,只是用ini配置内容取代表B:
[vwtktask]
0.ColWidth=48
0.DisplayLabel=附件数量
0.Index=ffilecount
0.Visible=1
1.ColWidth=83
1.DisplayLabel=最后更新时间
1.Index=flast
1.Visible=1
10.ColWidth=64
10.DisplayLabel=类别
10.Index=ftype
10.Visible=1
11.ColWidth=141
11.DisplayLabel=跟进人
11.Index=fauthor
11.Visible=1
12.ColWidth=148
12.DisplayLabel=责任人
12.Index=fwho
12.Visible=1
13.ColWidth=52
13.DisplayLabel=删除标志
13.Index=fdeleted
13.Visible=1
2.ColWidth=156
2.DisplayLabel=任务
2.Index=fprj
2.Visible=1
3.ColWidth=177
3.DisplayLabel=工作内容
3.Index=fname
3.Visible=1
4.ColWidth=22
4.DisplayLabel=ID
4.Index=fid
4.Visible=0
5.ColWidth=70
5.DisplayLabel=启动日期
5.Index=fstart
5.Visible=1
6.ColWidth=76
6.DisplayLabel=计划完成时间
6.Index=fwillstop
6.Visible=1
7.ColWidth=76
7.DisplayLabel=实际完成时间
7.Index=fstop
7.Visible=1
8.ColWidth=154
8.DisplayLabel=工作情况
8.Index=fmemo
8.Visible=1
9.ColWidth=58
9.DisplayLabel=状态
9.Index=fstate
9.Visible=1
FieldCount=14
Last=2008-09-08 15:25:09.203
如果是客户端的DBgrid里,我的应用都是这么干的,只是用ini配置内容取代表B:
[vwtktask]
0.ColWidth=48
0.DisplayLabel=附件数量
0.Index=ffilecount
0.Visible=1
1.ColWidth=83
1.DisplayLabel=最后更新时间
1.Index=flast
1.Visible=1
10.ColWidth=64
10.DisplayLabel=类别
10.Index=ftype
10.Visible=1
11.ColWidth=141
11.DisplayLabel=跟进人
11.Index=fauthor
11.Visible=1
12.ColWidth=148
12.DisplayLabel=责任人
12.Index=fwho
12.Visible=1
13.ColWidth=52
13.DisplayLabel=删除标志
13.Index=fdeleted
13.Visible=1
2.ColWidth=156
2.DisplayLabel=任务
2.Index=fprj
2.Visible=1
3.ColWidth=177
3.DisplayLabel=工作内容
3.Index=fname
3.Visible=1
4.ColWidth=22
4.DisplayLabel=ID
4.Index=fid
4.Visible=0
5.ColWidth=70
5.DisplayLabel=启动日期
5.Index=fstart
5.Visible=1
6.ColWidth=76
6.DisplayLabel=计划完成时间
6.Index=fwillstop
6.Visible=1
7.ColWidth=76
7.DisplayLabel=实际完成时间
7.Index=fstop
7.Visible=1
8.ColWidth=154
8.DisplayLabel=工作情况
8.Index=fmemo
8.Visible=1
9.ColWidth=58
9.DisplayLabel=状态
9.Index=fstate
9.Visible=1
FieldCount=14
Last=2008-09-08 15:25:09.203
declare @sql varchar(8000)
set @sql=''select @sql=',['+xmmc+']='+id from Bset @sql='select '+stuff(@sql,1,1,'')+' from A'exec(@sql)
--生成测试数据
create table A(nk1 int,nk2 int,nk3 int)
insert into A select 700,500,300
insert into A select 800,400,600
create table B(id varchar(10),xmmc varchar(10))
insert into B select 'nk1','岗位工资'
insert into B select 'nk2','金额'
insert into B select 'nk3','工龄'
go--动态SQL处理
declare @sql varchar(8000)
set @sql=''
select @sql=@sql+',['+xmmc+']='+id from B
set @sql='select '+stuff(@sql,1,1,'')+' from A'
exec(@sql)--执行结果
/*
岗位工资 金额 工龄
----------- ----------- -----------
700 500 300
800 400 600
*/
go--删除测试数据
drop table A,B
go
select 0 fo,(select xmmc from b where id='nk1') nk1,(select xmmc from b where id='nk2') nk2,(select xmmc from b where id='nk3') nk3
union all
select 1,* from a
) a
order by fo
这样也可以
create table #A(nk1 int,nk2 int,nk3 int)
insert into #A select 700,500,300
insert into #A select 800,400,600
create table #B(id varchar(10),xmmc nvarchar(10))
insert into #B select 'nk1',N'gwgz'
insert into #B select 'nk2',N'je'
insert into #B select 'nk3',N'gn'
godeclare @sql varchar(8000)
set @sql=''
select @sql=@sql+','+id+' '+xmmc from #B
print @sqlset @sql='select '+stuff(@sql,1,1,'')+' from #A'
print @sql
exec(@sql)