Классический ASP, извлекающий большие объемы данных - PullRequest
1 голос
/ 22 июня 2010

У меня есть таблица, которая содержит более 148 000 строк, мне удалось отобразить это, выполнив:

<%response.Buffer=false%> 

Однако это далеко от идеала, так как это нужно сделать на сервере, и это занимает много времени. Есть ли лучший способ сделать это?

Большое спасибо, Joel

Ответы [ 2 ]

4 голосов
/ 22 июня 2010

Хотя я согласен с остальными, что показ 148 000 строк на одной странице - это безумие, я просто хотел обратить ваше внимание на то, как вы должны выводить данные.

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

Do While Not RS.EOF
//Output
RS.MoveNext
Loop

Это действительно неэффективный способ работы с данными в классическом ASP, поскольку каждый раз, когда вы читаете поле (например, RS («Имя»)), вы делаете запрос к базе данных, и то же самое относится и к каждый MoveNext и каждый тест EOF. Вместо этого вы должны использовать GetRows, чтобы получить все ваши элементы из набора записей в массив, а затем вы можете пойти дальше и закрыть соединение с вашей базой данных.

Хорошая статья о том, как работать с GetRows здесь

За исключением статьи:

MyArray = rsMyRecordSet.GetRows()

//Close DB connection

Ubound(MyArray,1) 'Returns the Number of Columns
Ubound(MyArray,2) 'Returns the Number of Rows
For lnLoopCounter = 0 To Ubound(MyArray,2)
    Response.Write MyArray(0, lnLoopCounter) _
      & ", " _
      & MyArray(1, lnLoopCounter) _
      & "<BR>" & vbNewLine
Next
0 голосов
/ 31 мая 2013

Я знаю, что это старый пост, но я просто подумал, что позволю всем, кто сталкивается с этим, что я написал сценарий на стороне сервера только для этой цели.Проверьте это в:

http://www.webmastersean.com/2012/11/datatables-classic-asp-server-side.html

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