список посещений за последние 24 часа - PullRequest
0 голосов
/ 11 июля 2009

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

[0], [0], [0], [0], [0], [0], [0], [0], [0], [, 0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [, 0], [, 0], [, 0], [, 0], [, 0],

Dim ListHours()
HoursInCurrentDay = "24"
Redim ListHours(HoursInCurrentDay)
For Days = 0 To 23
    ListHours(Hours) = Hours
Next
SQLARR2 = ListHours
For x = 1 to ubound(SQLARR2)
    SQL = "SELECT COUNT(DISTINCT VISITORIP) AS TOTALVISITS"
    SQL = SQL & " FROM STATS"
    SQL = SQL & " WHERE DATEPART(hh, GETDATE()) = '"& SQLARR2(x) &"' AND DATEENTERED BETWEEN CONVERT(VARCHAR(10), GETDATE()-1, 101) AND CONVERT(VARCHAR(10), GETDATE(), 101)"
    Set objVisits = objConn.Execute(SQL)    

    If objVisits.EOF Then
    Else 

    List = List + "[" & SQLARR2(x) & "," & objVisits("TOTALVISITS") & "],"

    End If
Next

Response.Write List

Ответы [ 2 ]

1 голос
/ 11 июля 2009

Глядя на предоставленный результат, я замечаю, что SQLARR2 (x) не генерирует значение. Все результаты появляются [, 0], где первый (отсутствующий) элемент - час, а второй элемент - количество. Я не думаю, что значения ListHours правильно определены, так как у вашей переменной Hours нет присваивания (во всяком случае, внутри фрагмента).

Если вы измените

For Days = 0 To 23        
   ListHours(Hours) = Hours
Next

до

For Days = 0 To 23        
   ListHours(Days) = Days
Next

правильные часы должны быть добавлены в ваш список. Это также должно исправить запрос (и результат запроса), поскольку SQLARR2 (x) также используется для построения динамического sql.

Надеюсь, это поможет.

0 голосов
/ 11 июля 2009

Не могли бы вы просто использовать простой запрос вроде:

SELECT * FROM VISITS WHERE (VISIT.TIME > now - 24hours AND VISIT.TIME < now)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...