您的位置:首页 > 其它

[置顶] 学生管理系统的常见问题

2013-07-31 15:26 169 查看
学生管理系统从上学期考试的那段时间开始敲的,于是就被暂时搁置了一段时间,以至于用了这么长时间去完成,今目标上延期了6次(每次申请延期都很纠结~~~~~~~)。

废话不多说啦,就说说期间的常见问题吧。

常见问题

问题一: BOF或EOF中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。



这个问题是从一开始,每一个窗体敲完后,最有可能出问题的错误。

这个错误是应为1、没有数据可用(数据库中没有信息),2、这是就要往数据库中添加信息时,没有连接到数据库中才会出现的结果。

解释:1.使用ADO连接数据库进行查询的时候,数据库将查询结果返回查询端,在查询端的内存里面就会有一个列表,这个列表存放的就是查询的结果。这个内存中的列表就是数据集。在你的程序里面rs就是表示这个数据集。bof表示rs当前的指针是指在了数据集的前面,比如数据集里面有编号为1,2,3,4的4条记录,但是rs指向的编号是-1,这样就会符合了bof的情况。同理,当rs的指针指向5,而第五条记录并不存在,这样就会产生了eof的情况。

如果同时产生了bof和aof的情况,就是说rs的指针既在上界之外也在下届之外,这样只有一种情况,就是rs所代表的数据集是空的,这样rs的指针无论是指到什么地方都是同时具有bof和eof的属性。

你的情况估计是sql语句查询出来的值是空的,因此数据集也是空的,在读取rs数据集里面的值的时候就会报这个错误。



使用 if rs.bof and rs.eof then这个判断可以判别rs里面是否有没有数据集,如果符合这个条件,说明数据集是空的,在程序中就要绕开对rs里字段的访问。

2.BOF和EOF是分别指向记录集的起始地址和结束地址。你确定这两个指针有指向吗?这两个指针要同时为“真”吧。还有如果你确认以上是正确的,那么你是否已经打开相应的记录集呢?还有就是选择一个已有用户名来调试。

3.在你查询的表中没有数据,可能是SQL的毛病也可能是真的没有数据。只要加上一个出错处理就可以了。一定要将数据库打开,并检查其中有东西后才不会出现问题。

on error resume next

rss.movefirst

if err=3021 then

response.write "无数据!"

end if



出现这样的错误,那么其中第12行 mrc.movenext就要删除了,因为如果你的表中有一个数据的话,就会因为没有下一个数据而出现这种错误。(没有数据的情况!)



这样的代码才正确。

这个学生管理系统因为不规范、敲错了造成这样的问题的情况有很多,让你们看看是不是也犯了这样的错误呢!



里面的adlockoptimistic是不是给敲成了adlockbatchoptimistic?

问题二:多步操作产生错误。如果可能,请检查每个LOE DB的状态值。没有工作被完成。



出现这个问题其实很简单。就是数据类型不对或者溢出。

问题三:行句柄引用了一个已被删除的行或被标识为删除的行。



出现这种情况是因为:





上下一眼就可以看得出来的是:mrc.bookmark=mybookmark 写反了,但是这看到这个就太片面啦!问题的原因就是查询功能没有找到这个数据源。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: