eof和bof问题??
rs_login.EOF通俗说是不是我登陆时候,要先查看下我数据库里有不有用户名和密码的记录,如果连库存都没的话,就没办法验证对吧,那么此时rs_login.EOF为tr...
rs_login.EOF 通俗说是不是我登陆时候,要先查看下我数据库里有不有用户名和密码的记录,如果连库存都没的话,就没办法验证对吧,那么此时rs_login.EOF为true,没有记录...对吧!!!这是我看的理解!!
同样bof也一样,对吧!!
那如果我写代码:
if rs_login.EOF =true then
msgbox"你需要新添加用户"
是这样么, 展开
同样bof也一样,对吧!!
那如果我写代码:
if rs_login.EOF =true then
msgbox"你需要新添加用户"
是这样么, 展开
5个回答
展开全部
首先你要搞清楚rs_login.EOF的含义:
rs_login在用SQL语句查询数据表时得到一个记录集,这个记录集是符合SQL语句的查询条件的,在查询过程中记录集的指针是依照Order语句的条件由数据表的第一条记录或最后一条记录向后或向前移动的。
如果指针是向后移动,没有查询到SQL语句条件的记录,那么指针就可能移动到数据表记录的空记录了(这样说你可能不是很明白,例如数据表有10条记录,这时指针可能移动到第11条了,权且这样理解),所以EOF就是这个意思了,也就是没有符合查询条件的记录存在;
同样如果指针是向前移动的,那么就可能移动到第一条记录的前面,同样没有查询到记录,因此用BOF属性来判断了。
rs_login在用SQL语句查询数据表时得到一个记录集,这个记录集是符合SQL语句的查询条件的,在查询过程中记录集的指针是依照Order语句的条件由数据表的第一条记录或最后一条记录向后或向前移动的。
如果指针是向后移动,没有查询到SQL语句条件的记录,那么指针就可能移动到数据表记录的空记录了(这样说你可能不是很明白,例如数据表有10条记录,这时指针可能移动到第11条了,权且这样理解),所以EOF就是这个意思了,也就是没有符合查询条件的记录存在;
同样如果指针是向前移动的,那么就可能移动到第一条记录的前面,同样没有查询到记录,因此用BOF属性来判断了。
展开全部
使用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里字段的访问。
如果同时产生了bof和aof的情况,就是说rs的指针既在上界之外也在下届之外,这样只有一种情况,就是rs所代表的数据集是空的,这样rs的指针无论是指到什么地方都是同时具有bof和eof的属性。
你的情况估计是sql语句查询出来的值是空的,因此数据集也是空的,在读取rs数据集里面的值的时候就会报这个错误。
使用
if
rs.bof
and
rs.eof
then
这个判断可以判别rs里面是否有没有数据集,如果符合这个条件,说明数据集是空的,在程序中就要绕开对rs里字段的访问。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是这么检查的
检查RecordCount属性是否为零,rs.RecordCount就是查到的记录条数
一般是先查有没用用户名,有的话就获取密码,与登陆窗口输入的密码进行二进制比较Strcmp,而且用户名和密码还不允许输入单引号,这个要过滤掉
rs.open select * from 你的表 where UserId='登陆框的用户名',conn
if rs.recordcount=0 then
msgbox "用户名错误"
else
再核对密码
end if
检查RecordCount属性是否为零,rs.RecordCount就是查到的记录条数
一般是先查有没用用户名,有的话就获取密码,与登陆窗口输入的密码进行二进制比较Strcmp,而且用户名和密码还不允许输入单引号,这个要过滤掉
rs.open select * from 你的表 where UserId='登陆框的用户名',conn
if rs.recordcount=0 then
msgbox "用户名错误"
else
再核对密码
end if
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if rs_login.EOF then 就可以了
好象我以前都是检查记录集的行数(忘了,哈)
好象我以前都是检查记录集的行数(忘了,哈)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if rs_login.EOF then 就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询