ASP Classic: набор записей recordcount -1 для новой таблицы, но более старые хорошо? - PullRequest
0 голосов
/ 27 июня 2019

Я работаю с Classic ASP, получая доступ к базе данных Access на нашем веб-сервере. Приложение проверяет наличие обновлений датчика в сети / таблице, т. Е. Печатает последние 5 записей. Этот код работал для нескольких таблиц исторически. Недавно я добавил новую таблицу в базу данных, и когда я изменяю код для извлечения записей из новой таблицы, я получаю recordcount = -1, и он выводит только последнюю запись. Я читал о курсоре Recordset, но не уверен, что понимаю, как применить это к моему коду, а также почему код не работает для этой новой таблицы? Вот основной код для извлечения записей для печати:

WebName = "OurWeb"
MySite = "filedsn=" & Server.MapPath("/" & WebName & "/files/reffiles/accessdsn.dsn") & ";DBQ=" & Server.MapPath("/" & WebName & "/files/reffiles/loger.mdb") & ";DefaultDir=" _
& Server.MapPath("/" & WebName & "/") & ";"

set MyDatabase = server.createobject("ADODB.Connection")
if err.number <> 0 then response.write("<p>ODBC Error</p>")
Mydatabase.open MySite 

set LastMyDate = MyDatabase.Execute("SELECT Format(Max([Date_Time]),'mm/dd/yy hh:mm:ss') AS Expr1 FROM Charger2;")

set LastMYDate = MyDatabase.Execute("SELECT Charger2.id FROM Charger2 WHERE Charger2.date_Time = #" & lastMGdate.fields(0).value & "#;")

MyIDLast = LastMyDate.fields(0).value -5
set LastMyRecord = MyDatabase.Execute("SELECT Charger2.id,  Charger2.date_time,  Charger2.INV_vdc,  Charger2.INV_adc FROM Charger2 WHERE (((Charger2.id) > (" & MyIDLast & ")));")

Идентификатор - это целое число автономного номера. На данный момент свойство recordcount имеет значение «-1». Когда я запускаю этот запрос Select непосредственно из интерфейса программы доступа, он возвращает правильный номер.

Спасибо за любую помощь и понимание, почему эта проблема происходит с этой таблицей ... RDK

1 Ответ

2 голосов
/ 27 июня 2019

Количество записей возвращает -1, если набор записей загружен не полностью.

При использовании агрегированного запроса, который возвращает одну запись, она часто полностью загружается. Но если вы фильтруете неиндексированный столбец, это может быть не так.

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

...