set rs=Conn.Execute的问题
sql="select * from new"
set rs=conn.execute (sql)
以上这两句执行完之后,为什么返回的记录集的记录数是-1呢?
set rs=server.createobject("adodb.recordset")
rs.open "select * from new order by tjdate desc",conn,1,1
而我用这两句就可以返回正确的数据?
查了ado的帮助,明明写着execute方法可以返回记录集的呀?
[237 byte] By [
msdn] at [2007-8-14 19:10:54]

# 1 Re: set rs=Conn.Execute的问题
我刚才又加了几句:
response.write rs.recordcount
do while not rs.eof
response.write rs("title") & "<br/>"
rs.movenext
loop
虽然输出的记录数为-1,可是能够输出正确的记录
这是为什么呢?
# 2 Re: set rs=Conn.Execute的问题
对,可以返回记录集,
sql="select * from new"
set rs=conn.execute (sql)
这个时候记录集中已经有内容了,当时如果你要得到它的记录数,使用recordcount就会得到-1,需要使用getrows才能得到正确的记录数。
# 4 Re: set rs=Conn.Execute的问题
rs.open "select * from new order by tjdate desc",conn,1,1
這一句的錯誤,你改成
rs.open "select * from new order by tjdate desc",conn,1,3
# 6 Re: set rs=Conn.Execute的问题
sql="select * from new"
set rs=conn.execute (sql)
arrA=rs.getrows
Response.Write(ubound(arrA,2)+1)
就可以输出记录集的记录总数
# 10 Re: set rs=Conn.Execute的问题
sql="select * from table"
set rs = conn.execute(sql)
arrA=rs.getrows
Response.Write(ubound(arrA,2)+1)
就可以得到正确的记录总数
# 11 Re: set rs=Conn.Execute的问题
sql="select * from table"
set rs = conn.execute(sql)
arrA=rs.getrows
Response.Write(ubound(arrA,2)+1)
for a=0 to ubound(arra,1)
for b=0 to ubound(arra,2)
response.write arra(a)(b)
next
next
为什么提示我
下标越界: 'arrA' ?