vb+sqlserver
在做毕业设计时,遇到这样的情况:我用VB做前台界面开发,SQL SERVER做后台数据库,做一学生报到系统。
就是说能为要报到的学生自动生成入学序号,要能多机联网操作。我用一表专门保存当前报到学生的总人数。
当有学生报到时,用SELECT语句从表中取出总人数作为该生的入学序号,然后总人数要加1。当多用户联网操作时,如何保证
每个用户不会读到“脏”数据。比如说,当前总人数为x=10,当用户一读出10后,执行x=x+1=11,而这时,又有用户
二操作读出11,然后加1,而这时,用户一撤消操作时,是不是就会发生错误?那么,应如何解决该问题?
是用VB解决,还是SQL SERVER能解决此中问题?用SELECT 语句为该表加的是什么锁?
问题二:
现已有连续入学序号的学生,比如:学生一为10,学生二为11,学生三为12,当删除学生二而后,空出一个好11
当下一次有学生报到时欲把号11 给该生。应如何实现?我的思考是:把每一被删除的学生的号用一表保存,
学生报到时,每次都查找该表看是否有空余的号,如有则给该生,没有则从总人数中取号。但如果这样的话,我
个人感觉速度会很慢,想请教高手有没有其他高招或是用我这样的思考就可以?
问题三:
用VB如何实现程序长驻内存,就象那些杀毒程序一样,不调用时在任务栏右边驻留?是用API函数吗?应该用那些函数?
请指教!谢谢
问题点数:20、回复次数:10Top
1 楼zyb_8022(紫光)回复于 2001-06-10 22:06:00 得分 0
各位高手快快帮忙啊,谢谢Top
2 楼Hongky(xxx)回复于 2001-06-10 22:27:00 得分 0
select count(*) from table求出总数
创建托盘程序有现成的控件可以调用,看看程序员大本营吧Top
3 楼bdgyz(中关村)回复于 2001-06-11 10:32:00 得分 0
事务处理,很典型的sql问题,看看sql server的书会明白的Top
4 楼andynamo(编程烂指)回复于 2001-06-11 11:28:00 得分 0
写一个存储过程就可以很好地解决这个问题…
即使是从中间删除学生也可以…
Top
5 楼wywq(幸福如猪)回复于 2001-06-11 11:39:00 得分 0
最简单的方法是加一个确认标志字段
!Top
6 楼andynamo(编程烂指)回复于 2001-06-11 11:45:00 得分 0
To wywq(幸福如猪),
很有道理………Top
7 楼zyb_8022(紫光)回复于 2001-06-12 22:31:00 得分 0
to wywq(幸福如猪)小弟蠢笨暂不懂你何意,愿洗耳恭听Top
8 楼andynamo(编程烂指)回复于 2001-06-13 10:45:00 得分 20
我帮他解释吧:加一个Bit型的字段,用来说明这条记录是否有效,即这名学生是否确认报名,
如果某学生中途退出则将些标志位设为0,并不用删除这条记录,这样下一位学生来报到时,
只要"select min(ID) from student where flag=0" 就可以找出无效记录分配给新生,
最后"select * from student where flag=1" 就是所有报名的学生………Top
9 楼zyb_8022(紫光)回复于 2001-07-12 23:27:14 得分 0
to 编程浪子
对不起,今天才见到所以现在才回复,问题我已解决,但仍给你20分吧!Top
10 楼andynamo(编程烂指)回复于 2001-07-13 17:02:00 得分 0
呵呵……Top




