This is topic Перенаправление АРХИВА в БД (MS SQL-Server 2014) in forum SIAD/SQL. Архивирование в TRACE MODE / SIAD/SQL. Data Logging in TRACE MODE at Форум TRACE MODE: техническая поддержка.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Чтение из БД в ИС и в реальном времени осуществляется?
Включите трассировщик в бланке "Администратор источников данных ODBC и посмотрите, нет ли там сообщений об ошибках в SQL-транзакциях.
Posted by Alexander_ (Участник № / Member № 7778) on :
Выявлена причина проблемы. Дело в том, что по умолчанию MS SQL-Server воспринимает посылку даты и времени от ТМ, причем именно от аргументов типа DATE_AND_TIME в ячейки типа datetime, - "меняя число и месяц местами", т.е. в американском формате:
гггг-дд-мм чч:мм:сс.000 .
Поменяв формат поля таблицы SQL на datetime2, можно добиться решения проблемы. Примечательно, что посылка DATE TraceMode в datetime приводит к
гггг-мм-дд 00:00:00.000 .
Следовало бы ожидать, что изменение региональных настроек ОС под американский формат так же приведет к адекватной интерпретации данных SQL-сервером, oднако (речь идет об атрибуте (45, Т) каналов) этого не происходит. Что нужно делать, если необходимо отправить время изменения канала именно в формате гггг-дд-мм чч:мм:сс.000 ?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
ДАТА/ВРЕМЯ в SQL-транзакции Trace Mode 6 передает в строковом виде в строгом соответствии с локальными настройками ОС. Для ОС, локализованной для России это "Полный формат даты": дд.мм.гггг чч:мм:сс. Часы-минуты-секунды передаются адекватно. Пример переданной строки из трассировщика: WCHAR * 0x05D09BC0 [ 133] "INSERT INTO Table1\ a(\ a\ 9Snumber,\ a\ 9Stext,\ a\ 9Sdate,\ a\ 9Stime,\ a\ 9bool\ a)\ aVALUES\ a(\ a\ 9'2342',\ a\ 9'may',\ a\ 9'08.11.2018 10:58:24',\ a\ 9'02:12:14',\ a\ 9'1'\ a\ a)"
Отображение этой строки в БД: ID Snumber Stext Sdate Stime Bool FLOAT 1995 2342 may 08.11.2018 10:58:24 2:12:14 Да 0
Отображение этой строки в БД зависит полностью от настроек БД и ее полей.