This is topic SELECT из MS SQL in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.
Здравствуйте! Имеется БД в 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 :
"А слона-то я и не заметил!" Спасибо, поняла ошибку. Видимо совсем запуталась при составлении проекта