powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / [VBS] Скрипт пишет одно и тоже значение
4 сообщений из 4, страница 1 из 1
[VBS] Скрипт пишет одно и тоже значение
    #39279377
den_vish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Есть скрипт который забирает данные с 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
[VBS] Скрипт пишет одно и тоже значение
    #39279476
Фотография бухалтер фантоцци
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
den_vish,

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

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

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

в итоге выглядит так
Код: 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
4 сообщений из 4, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / [VBS] Скрипт пишет одно и тоже значение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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