Sql server 从迭代记录到GetRows()-是否可以使用rs(“id”,计数器)?

Sql server 从迭代记录到GetRows()-是否可以使用rs(“id”,计数器)?,sql-server,asp-classic,Sql Server,Asp Classic,我从我的数据库中获取了大量数据,在此之前,我在一个记录集中反复访问了这些数据,如下所示: sql = "select * from table" set rs = conn.execute(sql) if not rs.eof then do until rs.eof id = rs("id") fullname = rs("fullname") response.write("<a href='/" & id & "'>Hi " &a

我从我的数据库中获取了大量数据,在此之前,我在一个记录集中反复访问了这些数据,如下所示:

sql = "select * from table"
set rs = conn.execute(sql)

if not rs.eof then
  do until rs.eof
    id = rs("id")
    fullname = rs("fullname")

    response.write("<a href='/" & id & "'>Hi " & fullname & ".<br />")
  rs.movenext
loop
sql = "select * from table"
set rssql = conn.execute(sql)

if not rssql.eof then
  rs = rssql.getrows()
end if

rssql.close

if isarray(rs) then
  for counter = lbound(rs) to ubound(rs)
    id = rs(0, counter)
    fullname = rs(1, counter)

    response.write("<a href='/" & id & "'>Hi " & fullname & ".<br />")
  next
end if
sql=“从表中选择*
设置rs=conn.execute(sql)
如果不是卢比,那么
直到R.eof为止
id=rs(“id”)
全名=rs(“全名”)
回答。写(“Hi”&fullname&“
”) 下一个 环
现在,我使用GetRows()使用静态记录集,如下所示:

sql = "select * from table"
set rs = conn.execute(sql)

if not rs.eof then
  do until rs.eof
    id = rs("id")
    fullname = rs("fullname")

    response.write("<a href='/" & id & "'>Hi " & fullname & ".<br />")
  rs.movenext
loop
sql = "select * from table"
set rssql = conn.execute(sql)

if not rssql.eof then
  rs = rssql.getrows()
end if

rssql.close

if isarray(rs) then
  for counter = lbound(rs) to ubound(rs)
    id = rs(0, counter)
    fullname = rs(1, counter)

    response.write("<a href='/" & id & "'>Hi " & fullname & ".<br />")
  next
end if
sql=“从表中选择*
设置rssql=conn.execute(sql)
如果不是rssql.eof,则
rs=rssql.getrows()
如果结束
rssql.close
如果是isarray(rs)那么
计数器=lbound(rs)至ubound(rs)
id=rs(0,计数器)
全名=卢比(1,计数器)
回答。写(“Hi”&fullname&“
”) 下一个 如果结束

真的不可能用rs(“id”,计数器)来代替静态数字吗?我的表中有一个动态的冒号(由系统创建),我需要的冒号是非常动态的。每行中我需要的列数由行中的另一列指定。

GetRows
返回一个普通数组&因此只能通过数字索引寻址

如果出于某种原因需要尽快处理连接,则可以完全填充记录集并断开连接


(您始终可以使用初始记录集通过
.Fields
集合用列名填充另一个数组或集合)

rs.Fields(计数器)。Name
将允许您访问列名。不幸的是,
getrows()
没有创建关联数组,因此您无法按列名查找数据。

我使用.fields创建了另一个名称为的数组,然后使用一个函数来查找数组编号。。谢谢你的建议!:)其中键是列名,值是数组索引可能更容易使用。我使用了一个数组,数组索引是ID,值是名称,然后我创建了一个非常简单的函数来处理它。它工作得很好,整个过程将我的应用程序从10分钟加载到10秒。所以我很高兴;)