2009-07-11 3 views
0

Я пытаюсь перечислить последние визиты в час за последние 24 часа. Я думал, что следующий код будет делать это, но я получаю результат ниже. Любая идея, где я это прикрутил?listing посещения за последние 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 

ответ

1

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

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

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

в

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

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

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

+0

большое спасибо! – 2009-07-11 19:28:25

+0

Я рад помочь. –

+0

+1 Хорошо пятнистый – feihtthief

0

Может вы не просто использовать простой запрос, как:

SELECT * FROM VISITS WHERE (VISIT.TIME > now - 24hours AND VISIT.TIME < now) 
Смежные вопросы