Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / [VBS] Скрипт пишет одно и тоже значение / 4 сообщений из 4, страница 1 из 1
25.07.2016, 06:17
    #39279377
den_vish
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[VBS] Скрипт пишет одно и тоже значение
Добрый день.
Есть скрипт который забирает данные с HTML страницы каждые две секунды, ну как забирает, должен))
собственно вот он:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
Option Explicit 
On Error Resume Next
'объявляем переменные

Do

Dim massa,  ConSQL, res, strFileURL, objXMLHTTP 'ConSQL указывает куда складывать


Err.Clear
'запрос по строчке с адресом
strFileURL = "http://device/weight.html"
'откуда получить данные 
  Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
      objXMLHTTP.open "GET", strFileURL, false
      objXMLHTTP.send()
'если ответ нормальный делаем обращение к базе      
If objXMLHTTP.Status = 200 Then
'говорим что внутренняя переменная равна ответу от сайта
 massa = objXMLHTTP.responseText
 res = Cdbl((replace (objXMLHTTP.responseText, ".",","))) 
  If (res > 5) Then  
    'творим запрос к SQL
    set ConSQL = CreateObject("ADODB.Connection")
    'а именно через провайдер СКульОлеДБ
    ConSQl.Open "Provider=SQLOLEDB; Data Source = source; Password = pass; User ID = user; Initial Catalog = IC"
    'делаем вот такй вот СКуЛь запрос и вставляем данные
    ConSQL.Execute = "INSERT INTO Table1 (data,massa) Values (CURRENT_TIMESTAMP, '" & massa & "')"
    'после чего закрываем соединение
    ConSQL.Close
    set objXMLHTTP = nothing
    End If
 End If

 'ниже закоментирован проверятель скрипта
 'перед его тестированием закоментировать строчки с DO и Loop
 'wscript.echo  res 
 'и спим 2 секунды
 Wscript.Sleep 2000
 'и повторяем действие
Loop



и скрипт работает, но не корректно, а именно - постоянно пишет только то значение которое считал во время первого запуска (если сразу он прочел 99,9, то и писать будет на протяжении всей работы только 99,9 , хотя данные категорически меняются)
и вроде умом понимаю что где то что то не так, но догнать не могу.
...
Рейтинг: 0 / 0
25.07.2016, 11:17
    #39279476
бухалтер фантоцци
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[VBS] Скрипт пишет одно и тоже значение
den_vish,

GET-запросы кешируются, может в этом дело?
...
Рейтинг: 0 / 0
25.07.2016, 12:46
    #39279586
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[VBS] Скрипт пишет одно и тоже значение
бухалтер фантоцциden_vish,

GET-запросы кешируются, может в этом дело?+1
добавляйте к урлу какой-нибудь хлам, например текущее время:
Код: vbnet
1.
strFileURL = "http://device/weight.html?t=" & Now

.
...
Рейтинг: 0 / 0
26.07.2016, 06:15
    #39280013
den_vish
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[VBS] Скрипт пишет одно и тоже значение
Господа, вы были правы, большое спасибо

в итоге выглядит так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
Option Explicit 
On Error Resume Next
'объявляем переменные

Do

Dim massa,  ConSQL, res, strFileURL, objXMLHTTP 'ConSQL указывает куда складывать


Err.Clear
'запрос по строчке с адресом
'в конце строче адреса сделаны изменения - добавлена конструкция ?t" & Now  - для обхода кэширования
'спасибо за подсказку господам "Antonariy"  и "бухалтер фантоцци", пусть имена их увековечатся в скриптах)
strFileURL = "http://device/weight.html?t" & Now 
'откуда получить данные 
  Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
      objXMLHTTP.open "GET", strFileURL, false
      objXMLHTTP.send()
'если ответ нормальный делаем обращение к базе      
If objXMLHTTP.Status = 200 Then
'говорим что внутренняя переменная равна ответу от сайта
 massa = objXMLHTTP.responseText
 res = Cdbl((replace (objXMLHTTP.responseText, ".",","))) 
  If (res > 5) Then  
    'творим запрос к SQL
    set ConSQL = CreateObject("ADODB.Connection")
    'а именно через провайдер СКульОлеДБ
    ConSQl.Open "Provider=SQLOLEDB; Data Source = source; Password = pass; User ID = user; Initial Catalog = IC"
    'делаем вот такй вот СКуЛь запрос и вставляем данные
    ConSQL.Execute = "INSERT INTO Table1 (data,massa) Values (CURRENT_TIMESTAMP, '" & massa & "')"
    'после чего закрываем соединение
    ConSQL.Close
    set objXMLHTTP = nothing
    End If
 End If

 'ниже закоментирован проверятель скрипта
 'перед его тестированием закоментировать строчки с DO и Loop
 'wscript.echo  res 
 'и спим 2 секунды
 Wscript.Sleep 2000
 'и повторяем действие
Loop
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / [VBS] Скрипт пишет одно и тоже значение / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]