Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
VAScript_SQLServer 2000
|
|||
|---|---|---|---|
|
#18+
Привет! Работаю над архивом SCADA системы. Использую встроеный в SCADA систему VBScript и SQLServer 2000. Каждую секунду в БД записываются состояния всех объектов SCADA системы. Надо последовательно вычитывать строки из БД для просмотра состояния объектов за какой то промежуток времени, чтобы получилось типа "кино". Есть проблемка в скорости вычитывания данных из БД. В начале таблицы вычитывает быстро. Можно вести просмотр с интервалом в 1 секунду и меньше. Но если строк в таблице больше 50 тыс. скорость снижается. Для доступа к БД использую следующий код: Dim rs As Object Set rs = CreateObject("ADODB.Recordset") rs.open "day_" & user_dd, "DSN=movie;UID=;PWD=;", 0, 1, 2 ... hours = rs.fields("hour") mins = rs.fields("min") sec = rs.fields("sec") ... Посоветуйте как быть. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2004, 16:15 |
|
||
|
VAScript_SQLServer 2000
|
|||
|---|---|---|---|
|
#18+
Для начала: А где запрос, учитывающий в критериях этот "какой то промежуток времени"? Сортировка тоже не важна? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2004, 10:23 |
|
||
|
VAScript_SQLServer 2000
|
|||
|---|---|---|---|
|
#18+
Пробую таким способом. Неработает. Пишет incorrect syntax near the keyword 'select' Dim user_dd As Object Dim user_hh As Object Dim user_mm As Object Dim rs As Object Dim user_day As String user_day = "day_" & user_dd 'таблица из БД Set rs = CreateObject("ADODB.Recordset") rs.open"select * from user_day where hour = user_hh and min = user_mm;", "DSN=movie;UID=;PWD=;", 0, 1, 2 ' hour, min и sec - столбцы в БД ... rs.move = ms_pos_k.Value sec = rs.fields("sec") If rs.EOF Then ms_pos_k = 0 GoTo endl End If Где user_dd, user_hh и user_mm - день, час и минута точки начала просмотра архива. ms_pos_k - номер строки в БД. Вся программа находится в таймере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2004, 12:11 |
|
||
|
VAScript_SQLServer 2000
|
|||
|---|---|---|---|
|
#18+
Запрос надо бы сперва в Query Analizer спытать и отладить, а потом уже в прогу вставлять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2004, 14:22 |
|
||
|
VAScript_SQLServer 2000
|
|||
|---|---|---|---|
|
#18+
запрос такой select * from day_8_2 where hour = 12 and min = 41 and sec = 1; выводит одну строку. Пробую вставлять в прогу, ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2004, 15:30 |
|
||
|
VAScript_SQLServer 2000
|
|||
|---|---|---|---|
|
#18+
Так у тебя указано в вызове Open, что это таблица (adCmdTable=2), а не запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2004, 17:34 |
|
||
|
VAScript_SQLServer 2000
|
|||
|---|---|---|---|
|
#18+
Можно об этом подробней, я с VBScript раньше не сталкивался, только начинаю разбираться. Как тогда правильно запрос посылать. Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2004, 17:57 |
|
||
|
VAScript_SQLServer 2000
|
|||
|---|---|---|---|
|
#18+
Можно и поподробнее. Убери 3 последних параметра в rs.Open и всего делов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 12:56 |
|
||
|
VAScript_SQLServer 2000
|
|||
|---|---|---|---|
|
#18+
Попробовал таким способом: Dim rs As Object Dim cn As Object user_day = "day_" & user_dd & "_" & day_part Set cn = CreateObject("Adodb.Connection") cn.Provider = "sqloledb" ProvStr = "Server=HEX;Database=mydb;UID=stas;pwd=123;" cn.Open ProvStr Set rs = CreateObject("ADODB.Recordset") rs.ActiveConnection = cn rs.open "select * from " & user_day & " where hour = " & hours.value & " And min = " & mins.value '& " And sec = " & sec ... Заработало. Скорость вычитывания одинаковая что в начале, что в конце таблицы. Пока устраивает. Посмотрим что будет дальше. Слышал, что есть способы пошустрее, что-то вроде: rs.GetRows. Есть ли такое и если есть как с ним работать. Спасибо большое за поддержку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 15:23 |
|
||
|
|

start [/forum/topic.php?fid=60&tid=2169033]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 306ms |

| 0 / 0 |
