This is topic SELECT из MS SQL in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/31/t/001510.html

Posted by Яна Бойцова (Участник № / Member № 6862) on :
 
Здравствуйте! Имеется БД в MS SQL, БД имеет таблицу Table в ней два поля: DateTime (smalldatetime) и Temperature (real).
Используя запрос SELECT пытаюсь выводить значения этих двух полей на экран. Значения поля Temperature выводятся замечательно, а значение поля DateTime вывести не могу.
В канале SQLQuery аргумент data который связан с полем DateTime имеет тип DATE_AND_TIME. И я этот аргумент связываю с каналом data666 типа TIME и далее с аргументом экрана с типом данных DATE_AND_TIME. Отображения даты на экране не происходит. Только пустое окно.
В чем причина моей ошибки?
 
Posted by Яна Бойцова (Участник № / Member № 6862) on :
 
И дополнительный вопрос. При получение значения Temperature на экране МРВ, оно периодически сбрасывается в 0. Видимо после каждого SELECT МРВ показывает значение из БД и сбрасывает аргумент экрана в 0. Как этого избежать?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. К какому атрибуту канала TIME привязан аргумент SQLQuery? Должен быть атрибут ВХОДНОЕ_ЗНАЧЕНИЕ.
2. В "Панели МРВ" найдите канал SQLQuery и посмотрите значения его аргументов (откройте атрибут 124). При правильном SQL-запросе в этих аргументах должны быть правильные значения.
Если этого нет, надо включить трассировщик ODBC-обмена и проследить запросы и ответы в протоколе трассировщика.
 
Posted by Яна Бойцова (Участник № / Member № 6862) on :
 
Привязан к входному значению.
В панели МРВ канал видит верное значение даты, но на экране ничего не отображается. Аргумент экрана привязан к реальному значению канала TIME
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
На какой ГЭ экрана выводится значение канала TIME?
Какой формат вывода задан в этом ГЭ?
 
Posted by Яна Бойцова (Участник № / Member № 6862) on :
 
поняла Вас, ошибка моя.
значение канала TIME привязывалось к ГЭ "Текст".
При привязке к ГЭ "Дата и время" все встало на круги своя.

А как бы со сбросом значения аргумента экрана в 0 после выполнения запроса? Хотя дата так не поступает, остается прежней.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Привяжите REAL-аргумент SQL-запроса к ВХОДНОМУ-ЗНАЧЕНИЮ канала FLOAT. На экран выводите РЕАЛЬНОЕ_ЗНАЧЕНИЕ этого канала.
 
Posted by Яна Бойцова (Участник № / Member № 6862) on :
 
Канал TIME в панели МРВ корректно отображает время из БД. Но аргумент Экрана, к которому привязан канал TIME, меняет свое значение только с интервалом в 1,5 - 2 минуты. И то по какому-то своему закону.
С чем это связано?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Если Вы выводите НА ТОТ ЖЕ ЭКРАН значение канала-генератора_Пила, который изменяет свое значение с каждым циклом МРВ, отображение этого канала осуществляется адекватно?
 
Posted by Яна Бойцова (Участник № / Member № 6862) on :
 
канал генератор_ПИЛА меняет свое значение на ТОМ ЖЕ ЭКРАНЕ, где и канал TIME, корректно. То есть значение меняется с шагом +1, без всяких пропусков или торможений/ускорений.
И особенность одна: при запросе к БД в канал TIME (смотрела в панели МРВ) записывается верное значение времени из БД, к примеру, 10:20:43. А канал экрана показывает 10:20:00. Иногда бывает наоборот канал TIME 10:25:48, а экран 10:26:12
 
Posted by Яна Бойцова (Участник № / Member № 6862) on :
 
Формат даты в MS SQL - DATETIME. В БД дата хранится в формате 2016-09-23 10:22:50.350
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Миллисекунды при обмене в формате DATE&TIME не передаются и не принимаются.
При произвольном задании форматов могут возникать искажения.

Проверьте систему отображения без SQL-запросов (выключите канала CALL.SQL). Задавайте вручную в канале TIME произвольные "Дата-время" и посмотрите, как они будут отображаться на экране.
 
Posted by Яна Бойцова (Участник № / Member № 6862) on :
 
При ручном задании дата-время из канала TIME (из панели МРВ, время на экране отображается некорректно, со смешением в секунды.
И даже если устанавливать время на экране при нажатии на ГЭ "дата/время" время так же не соответствует введенному. Есть смещение в секунды.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Пришлите, пожалуйста, Ваш тестовый проект на адрес техподдержки hotline@adastra.ru.
 
Posted by Яна Бойцова (Участник № / Member № 6862) on :
 
Выслала Вам на почту. С темой "Яна Бойцова"
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
В начальном посте этого топика Вы пишете:
"В канале SQLQuery аргумент data который связан с полем DateTime имеет тип DATE_AND_TIME. И я этот аргумент связываю с каналом data666 типа TIME и далее С АРГУМЕНТОМ ЭКРАНА С ТИПОМ ДАННЫХ DATE_AND_TIME."

А в Вашем проекте тип данных аргумента экрана data, которому привязан канал TIME, REAL.

Измените тип данных аргумента экрана на DATE&TIME.
 
Posted by Яна Бойцова (Участник № / Member № 6862) on :
 
"А слона-то я и не заметил!"
Спасибо, поняла ошибку. Видимо совсем запуталась при составлении проекта
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2