Переход от итеративной записи к GetRows () - возможно ли rs («id», counter)? - PullRequest
2 голосов
/ 20 января 2012

Я получаю огромное количество данных из своей базы данных, которые я прежде перебирал в наборе записей, подобном этому:

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

Теперь я использую статический набор записей, используя GetRows (), например:

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

Неужели нельзя использовать что-то вроде rs («id», counter) вместо использования статических чисел?У меня в таблице динамическое количество столбцов (созданных системой), и очень динамично, какие из них мне нужны.Количество нужных мне столбцов в каждом ряду определяется другим столбцом в ряду.

Ответы [ 2 ]

4 голосов
/ 20 января 2012

GetRows возвращает ванильный массив и, таким образом, адресуется только по числовому индексу.

Если вы чувствуете, что по какой-то причине вам необходимо избавиться от соединения как можно скорее, вы можете полностью заполнитьнабор записей и отключение как описать здесь .

(Вы всегда можете использовать исходный набор записей для заполнения другого массива или коллекции именами столбцов через коллекцию .Fields)

1 голос
/ 20 января 2012

rs.Fields(counter).Name даст вам доступ к именам столбцов.К сожалению, getrows() не создает ассоциативный массив, поэтому вы не можете искать данные по имени столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...