SQL查询,DBGRID显示(100分)

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

dwq

Unregistered / Unconfirmed
GUEST, unregistred user!
1 有表《科目表》:学期 班级 科目
1 1 DELPHI
1 1 FOXPRO
1 1 ACAD
2 1 MASM
有表《成绩表》:姓名 科目 成绩
ABC DEPHI 80
ABC FOXPRO 81
ABC ACAD 82

现在我要显示(DBGRID),而且科目数不定:
姓名 DELPHI FOXPRO ACAD 总分
ABC 80 81 82 243
如何查询和显示?
2 我只进行一类数据库(如DBASE)的简单操作,不想装DBE,
有没有控件能完成?
(一周后我再来,快抢分啊!)
 
delphi针对dbase之类的数据库操作不需要捆绑bde也能运行(通过TClientDataSet实现).
如果只进行简单操作, 按您上述要求用dbgrid有一定难度.
有个简单的笨办法, 就是自己通过代码把结果生成到个stringgrid.
或者参考一下关于"怎样打印出具有类似于powerbuilder中crosstab风格的报表?"
的解答中有关Decision Cube的使用 (我没用过, 没发言权)
 
1.运用TQuery和TTable控件可以完成.
例:在一个Form放上一个TQuery,一个TTable,DBGrid,TDataSource.
1)用TQuery使用动态SQL语句查询科目表,根据结果定义TTable的Fields,
就是你的目的表 姓名 DELPHI FOXPRO ACAD 总分.
2)定义好TTable的Fields和TableName后用CreateTable建一空表.
3)用TQuery使用SQL语句按目的表的格式查询成绩表,根据你的目的
可能需好几次查询,这样不好,你需重新规划目的表和成绩表,使之
建立好'主从关系',争取一次得到如目的表格式的结果.
4)不管一次或多次查询,每得到结果就使用TTable的BatchMove函数,
把结果读入(用batAppend方式).
5)再整理TTable.
6)最后显示.
这是最快的办法,问题关键在于数据库的规划设计,只适于Xbase数据库,
若是SQL数据库,问题简单些.
2.不用BDE直接访问Xbase数据库的控件很多,如Applo,halcyon......
32delphi深度历险等站点有,很多人想不要BDE,本人反对这样做,
BDE好处很多,为什么不要呢?




 
到tongfang.yeah.net
 
因网络关闭,所以...sorry!
Thanks!
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部