rs.EOF的确是记录集对象判断最后一条记录的属性,BOF是判断是否是第一条记录的属性。
(P.S:EOF或者BOF都是真和假的逻辑值,EOF为真只有在当前记录集已经是最后一条记录,如果执行记录集对象的MoveNext方法EOF就为真。BOF则反之如果当前纪录集已经是第一条记录,继续执行记录集对象的MovePrevious方法BOF就会为真)
按照楼主的意思是判断当前读出的数据也就是sql = "select * from dw where dwname='"&request("dwname")&"'"
返回的结果是不是最后一条记录。
那如果这样的话之前必须得出判断最后一条记录的判断依据应该这么写
Dim LastKey
set rs = server.CreateObject ("adodb.recordset")
rs.open "select * from dw",conn,1,1
rs,MoveLast
LastKey=rs.Fields(1).Value
rs.Close
sql = "select * from dw where dwname='"&request("dwname")&"'"
rs.Open sql,conn,1,1
if rs.Fields(1).Value=LastKey then
。。。
else
。。。
end if
不过我写的代码也有两处关键问题
首先这句的作用是得到标示LastKey=rs.Fields(1).Value最后一条记录的关键字,这个地方跟数据库的设置有关。也就是数据库中表的主键(P.S:主键是数据库中保证每条记录不重复的字段的,也就是说比如学生信息表中找一名叫“张三”的学生。可叫“张三”的学生有10位,这时就无法区分到底是哪个学生了。如果加了一个主键学号进行区分,那么找一个学号是3,姓名叫“张三”的学生就肯定只有一个学生符合这个要求了。)
用主键作为判断依据,来判断当前得到的是不是最后一条。
(P.S:EOF或者BOF都是真和假的逻辑值,EOF为真只有在当前记录集已经是最后一条记录,如果执行记录集对象的MoveNext方法EOF就为真。BOF则反之如果当前纪录集已经是第一条记录,继续执行记录集对象的MovePrevious方法BOF就会为真)
按照楼主的意思是判断当前读出的数据也就是sql = "select * from dw where dwname='"&request("dwname")&"'"
返回的结果是不是最后一条记录。
那如果这样的话之前必须得出判断最后一条记录的判断依据应该这么写
Dim LastKey
set rs = server.CreateObject ("adodb.recordset")
rs.open "select * from dw",conn,1,1
rs,MoveLast
LastKey=rs.Fields(1).Value
rs.Close
sql = "select * from dw where dwname='"&request("dwname")&"'"
rs.Open sql,conn,1,1
if rs.Fields(1).Value=LastKey then
。。。
else
。。。
end if
不过我写的代码也有两处关键问题
首先这句的作用是得到标示LastKey=rs.Fields(1).Value最后一条记录的关键字,这个地方跟数据库的设置有关。也就是数据库中表的主键(P.S:主键是数据库中保证每条记录不重复的字段的,也就是说比如学生信息表中找一名叫“张三”的学生。可叫“张三”的学生有10位,这时就无法区分到底是哪个学生了。如果加了一个主键学号进行区分,那么找一个学号是3,姓名叫“张三”的学生就肯定只有一个学生符合这个要求了。)
用主键作为判断依据,来判断当前得到的是不是最后一条。