关于我的课程设计的一些问题!(ADO+Access)(100分)

  • 主题发起人 主题发起人 yzy25
  • 开始时间 开始时间
Y

yzy25

Unregistered / Unconfirmed
GUEST, unregistred user!
我的课程设计是用ADO+Access+delphi开发的(是关于学生信息以及学生成绩管理的)
设计数据结构如下:
学院表:
学院编号 学院名称
系表:
系编号 系名称 所属学院编号
班级表:
班级编号 班级名称 所属系编号
学生表:
学籍号 学生姓名 所属班级编号
学校设置的课程表:
课程编号 课程名称 学时数 学分数
学生成绩表:
成绩编号 学号 所选课程编号 所得分数 (其中成绩编号=学号+所选课程编号)
重要的表就这么多,(其中学生表,课程表,成绩表三表构成一个纽带表防止冗余数据的
产生)数据库结构应该没问题!

实现的功能大致描述如下:
界面的右边是一个TreeView结构为
**学院
**系
**班级
智育成绩
德育成绩
成绩总评
学分总评
这个TreeView是方便用户操作而设置的,用户想对哪个班级进行管理就可以动态添加该班级
(只是对数据库的记录的提取),这个功能已经完善了!
当用户Click相应的Item时响应相应的事件,
我想让用户Click”成绩总评“时动态创建表显示给用户看 表如下:
学号 学生姓名 课程1(所得分数) 课程2。。。。。。智育总评 智育排名

表的动态创建也搞定了,就是不知道如何往里面添加相应的记录!
我现在只实现了用insert into 语句从学生信息里选择这个班(既”成绩总评“父节点的
text)的学号,姓名添加到这个已经动态创建的表里!
困难就出现在!!!!!!!!!!!!!!!!!!
怎么当用户Click”成绩总评“时动态添加这些字段的记录!(包括智育总评和智育排名)
还有在代码维护里怎么实现删除一个学院时下面所有相关的系,班,学生,成绩记录全部
删除以避免冗余数据的出现,我需要较高效率的方法!
谢谢各位!分不够还可以再加!
 
另外,我还要求用户可以自己设置智育总评的计算公式!!!!!!!!!!!
所以在动态创建的这个表里添加这些记录时就要考虑这个问题,怎么添加才能让
“用户自己设置智育总评的计算公式”这一功能方便地实现起来!
解决关键问题者有分!
 
不太理解你为什么要动态创建表。
我理解你只是需要在点击相应的ITem时取出对应的信息给用户看。那只在进行一个SQL查询就
可以了。
至于删除吗,那就从最底层开始删除就可以了。先删学生成绩,再删学生,再删班,再删系,
再删学院就可以了。是一个嵌套的删除。
 
to ProMan:
1。SQl查询可以让记录名作为字段显示出来吗?
用户习惯的显示方式是:
学号 姓名 课程1成绩 课程2成绩 。。。。。 总评 排名
2。嵌套删除要用到很多循环,而且编程也较复杂。有没有更好的方法?
 
明天再给你看看,今天喝酒喝醉了
唔好意思
 
你现在的要求用SQL当然是可以满足的。
至于你说的编程麻烦,你用的是什么数据库呢,是不是可以事先写成存储过程在应用程序里
调用一下就可以了。
 
我也不是很明白,请参考:
http://www.delphibbs.com/delphibbs/dispq.asp?LID=1112042
 
直接一点的办法用视图(复杂的我不会,我比较喜欢用视图)

如果你想灵活处理各个数据表那就为各个数据表建立一个类,用它来处理各个数据表之间
的关系。先不要全部都写进去,一个一个的建。当然在这之前你必须搞清楚它们之间有什么
样的关系,需要提供什么样的函数处理功能。然后就是那种关系的处理了。

 
你的问题已解决。你还在线吗?
即然你用的是ACCess,那就很简单了,你在ACcess里设置好各个表之间的关系。关要求Access
实施参照完整性,这样在你删除某一个学院时,相关的记录全部会被删掉。
如果还有问题不清楚,与我联系。MSN :heavenghost2k@hotmail.com.写信也可哦。
 
Proman:
谢谢你,删除的问题是解决了! 设置Access的关系,以及其参照完整性就可以了。
可是我的动态创建表的记录的写入,以及综合成绩的字段计算方法还是没办法解决啊!

我这个动态表是从成绩表中找到这个班的学生选的不同的课的记录
把他们由代码翻译为名称然后作为动态表的字段名来创建!


(这个动态表只是用来显示已经存在的学生成绩信息
并没有涉及到表的记录的添加!)
 
文字太多,我嫌烦
 
To ProMan:
谢谢你的邮件的回答!
 

Similar threads

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