Форум TRACE MODE: техническая поддержка   
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 5 » Работа в MS Windows (ODBC/DDE/OPC/NET) / Working under MS Windows » Когда точно делается запрос

   
Автор / Author Тема / Topic: Когда точно делается запрос
Alexey
Junior Member / Новичок
Участник № / Member № 386


Icon 1 отправлено / posted      Профиль для / Profile for Alexey           Редактировать/удалить сообщение / Edit/Delete Post 
Я периодически посылаю данные в базу данных через интефейс ODBC.Для этого у меня есть специальные каналы "SQL_для вставки". Я изменяю их значения и посылаю в выход канала "SQL-выполнить" 0 (на входе у него всегда 1).Проходит некоторое время, и мне нужно сделать следующую подобную операцию, т.е присвоить каналам новые значения и послать на выход канала "SQL-выполнить" 0. Интервал времени может быть очень небольшой, возможно, 2 периода пересчета базы каналов (2х0.055 = 0.100 с).
Сущность вопроса: иногда (редко, но бывает), что одна серия значений каналов посылается два раза подряд, а другая не посылается (видно по базе данных). Я сделал вывод, что запрос к базе данных посылается не мгновенно после того как я послал на выход канала "SQL-выполнить" 0, а с задержкой (задержка большая, иногда (очень редко) больше 0.5 с). И получается, что на момент, когда делается запрос, значения каналов "SQL_для вставки" уже поменялись, и их предыдущие значения записаны не были. А это серйозная потеря данных.
Как вы можете объяснить эту ситуацию, т.е. прав ли я насчет задержки или этому может быть какое-то другое объяснение.

Сообщения / Posts 15 | Из / From: Ukraine  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 3 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
Причинами возникновения, описанной Вами ситуации, могут служить следующие:
1.Задержки в выполении запросов к самой базе данных. По опыту можно сказать, что у некоторых из них, например в Access, реакция в ответ на запрос может достигать сотен миллисекунд, что довольно много. (Отсутствие записей)
2.Рассинхронизация по времени канала, выполняющего запрос, и канала, управляющего выполнением запроса. Если мы в течении 2 циклов пересчета 1-го посылали ему на выход отличное значение, то будет выполнено 2 запроса. (Двойные записи)

Сообщения / Posts 17106 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

   Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2