关于eof和bof的使用疑问
if not (rs.eof and rs.bof) then
'do something
end if
if not rs.eof then
'do something
end if
1这两个判断有什么区别?
2使用第二种会产生问题么?
3如果使用第二种不会产生问题,那第一种写法是为什么?
------解决方案--------------------是用来做判断的,意思是不是记录头也不是记录尾。
在查询数据库时这句话起到判断记录集是否为空,如果为空not(rs.bof and rs.eof)就是假值。程序就会不做下面的动作。如果没有这句话,当遇到记录为空的情况的时候,下面仍然输出就会使程序出错,无法运行。
其中rs.bof是记录集rs的记录头,rs.eof是记录集rs的记录尾.
------解决方案--------------------BOF 指示当前记录位置位于 Recordset 对象的第一个记录之前。
EOF 指示当前记录位置位于 Recordset 对象的最后一个记录之后。
返回值
BOF 和 EOF 属性返回布尔型值。
说明
使用 BOF 和 EOF 属性可确定 Recordset 对象是否包含记录,或者从一个记录移动到另一个记录时是否超出 Recordset 对象的限制。
如果当前记录位于第一个记录之前,BOF 属性将返回 True (-1),如果当前记录为第一个记录或位于其后则将返回 False (0)。
如果当前记录位于 Recordset 对象的最后一个记录之后 EOF 属性将返回 True,而当前记录为 Recordset 对象的最后一个记录或位于其前,则将返回 False。
如果 BOF 或 EOF 属性为 True,则没有当前记录。
如果打开没有记录的 Recordset 对象,BOF 和 EOF 属性将设置为 True,而 Recordset 对象的 RecordCount 属性设置为零。打开至少包含一条记录的 Recordset 对象时,第一条记录为当前记录,而 BOF 和 EOF 属性为 False。
------解决方案--------------------TO:devms() 我是在网上找的帖子哈!呵呵!接点分!不容易啊!
说到GetRows() 我到是经常用GetString()
Function RsTable(RS)
Dim HTML
If Rs.RecordCount> 0 Then
HTML = " <table cellspacing= '1 ' cellpadding= '2 ' align= 'center '> <tr> "
For Each Member In Rs.Fields
HTML = HTML & " <td bgcolor= '#ECE9D8 '> "&Member.name& " </td> "
Next
HTML = HTML & " </tr> <tr> <td> "
HTML = HTML & Rs.GetString(,, " </td> <td> ", " </td> </tr> <tr> <td> ")
HTML = HTML & " </td> </tr> </table> </div> "
HTML = HTML & " <hr /> <center> 共 "&Rs.RecordCount& " 条记录 </center> "
Else
HTML = HTML & " <center> 没有记录 </center> "
End If
RsTable = HTML
End Function
Function DoTotal(BeginDate,EndDate)
Conn.CursorLocation=3
Set Rs = Conn.Execute( "EXEC mm_Down_CD ' "&BeginDate& " ', ' "&EndDate& " ' ")
DoTotal = RsTable(RS)
Rs.Close
Set Rs=Nothing
End Function
------解决方案--------------------我一般是直接取数据建立数据模型集合然后马上断开数据...
------解决方案--------------------if not (rs.eof and rs.bof) then
'do something
end if
if not rs.eof then
'do something
end if
1这两个判断有什么区别?
一个是判断指针既不在前,也不在后,一个是只判断在后
2使用第二种会产生问题么?
看你里面的内容,如果你要倒着显示数据,显示一条,指针向前移一条,当然不行了,但一般我们都是按记录集的顺序来显示的,所以不会有大问题
3如果使用第二种不会产生问题,那第一种写法是为什么?
看第二点