Созданные ответы форума
-
АвторСообщения
-
AidarУчастник
вызываю процедуру
EXEC [dbo].[tr_Only_Today] 2065, 2500;AidarУчастникпереписал процедуру, чтоб быстрее выполнялась и все заработало.
AidarУчастникВ Текущих данных оставил только код:
EXEC [dbo].[tr_Only_Today] 2065, 2500;
Запись в базу останавливается. В журнале пишет:Ошибка при экспорте текущих данных в БД MSSQL - srvtech: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. Невозможно добавить в очередь текущие данные. Максимальный размер очереди 100 превышен
AidarУчастниксо старым кодом все работает как раньше.
То есть, если просто исключить вызов функцииEXEC [dbo].[tr_Only_Today] 2065, @val;
все работаетAidarУчастникс синтаксисом вроде разобрался. В Текущих данных вот это:
IF (@stat=1) and (@cnlNum != 2065) BEGIN UPDATE sensors SET value = @val, error = 0 WHERE id_sensor = @cnlNum INSERT INTO data_02 (id_sensor, id_group, value) SELECT id_sensor, id_group, @val FROM sensors WHERE id_sensor = @cnlNum AND scan = 1 END IF (@stat=1) and (@cnlNum = 2065) BEGIN INSERT INTO data_02 (id_sensor, id_group, value) SELECT id_sensor, id_group, @val FROM sensors WHERE id_sensor = @cnlNum AND scan = 1 EXEC [dbo].[tr_Only_Today] 2065, @val; END
Но в журнале пишет: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
экспорт в БД останавливается. что это значит? как исправить?AidarУчастниксоздал хранимую процедуру
USE [scada] GO SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO ALTER PROCEDURE [dbo].[tr_Only_Today] (@id_sensor INT, @val int) AS DECLARE @Yesterday int set @Yesterday = (SELECT TOP 1 [value] FROM [scada].[dbo].[data_02] where id_sensor=@id_sensor and day(time) = DAY(GETDATE())-1 Order by id DESC) UPDATE [scada].[dbo].[sensors] SET value = @val - @Yesterday WHERE id_sensor = @id_sensor
вызываю процедуру во вкладке Текущие данные:
IF (@stat=1) and (@cnlNum != 2065) BEGIN UPDATE sensors SET value = @val, error = 0 WHERE id_sensor = @cnlNum INSERT INTO data_02 (id_sensor, id_group, value) SELECT id_sensor, id_group, @val FROM sensors WHERE id_sensor = @cnlNum AND scan = 1 END IF (@stat=1) and (@cnlNum = 2065) BEGIN tr_Only_Today (2065, @cnlNum) END
экспорт в БД останавливается. что не так?
AidarУчастникДобрый день.
Имеется счетчик импульсов.
Необходимо знать количество импульсов насчитанное за сегодня.
Как организовать обновление поля в таблице БД:
поле value в таблице sensors, где id_sensor 2065 = последнее вчерашнее value из таблицы data_02, где id_sensor 2065 - текущее показание из канала 2065
то есть вопрос в том, куда запихнуть этот код и будет ли это работать:DECLARE @Yesterday_2065 int set @Yesterday_2065 = (SELECT TOP 1 [value] FROM data_02] where id_sensor = 2065 and day(time) = DAY(GETDATE())-1 Order by id DESC) UPDATE sensors SET value = @val - @Yesterday_2065 , error = 0 WHERE id_sensor = 2065
AidarУчастникПрошу прощения сильно затупил!
Я весь «Пример таблиц и SQL запросов» запихнул во вкладку текущие данные и получилось непонятно что))
Раскидал пример кода по вкладкам Текущие данные, Архивные данные, События и все поехало!
Может в документации стоит более явно об этом написать, а может только я этого не понял сразу.
спасибо за ответыAidarУчастникSQL синтаксис в порядке.
Все настроено как в примере без изменений.AidarУчастникСкриншоты настройки модуля экспорта в БД:
https://img-fotki.yandex.ru/get/108168/325146823.1a/0_12112b_5b28095f_L.jpg
https://img-fotki.yandex.ru/get/194858/325146823.1a/0_12112c_abc0035d_L.jpg
Во вкладках Архивные данные и События ничего не менял.лог модуля ModDBExport.dll:
https://yadi.sk/d/e1uRgVhl3EKXGd
пробовал экспериментировать с SQL запросом из примера. Объявлял переменные, вырезал часть кода, все равно ругается.AidarУчастник1. Вы создали базу данных на сервере по скриптам из документации?
нет. База уже существует и используется. не видел в документации скрипта для создания базы. Таблицы CnlData и Events создал при помощи скриптов из примера.
2. Желательно побольше скриншотов.
Что именно показать? вроде пошагам расписал, что сделал.
По идее, настроив только модуль ModDBExport.dll, мне больше ничего не надо настраивать и все данные будут в БД идти?
AidarУчастникНеобходимо отправлять данные на MS SQL Server.
В SCADA-Сервере на странице Модули добавил ModDBExport.dll
Затем настроил свойства этого модуля: сервер, бд, пользователь, пароль.
Во вкладке Текущие данные поставил галочку Экспортировать, и вставил код из примера: http://doc.rapidscada.net/content/ru/modules/mod-db-export.html
По кнопке настроить соединение, на странице Модули, ничего не настраивал. Надо?В логе модуля экспорта пишет:
Ошибка при экспорте текущих данных в БД MSSQL — SecondServer\prg: Неправильный синтаксис около конструкции « ».
Неправильный синтаксис около ключевого слова «AS».
Необходимо объявить скалярную переменную «@objNum».что это значит?
AidarУчастнику меня в дистрибутиве нет файла dbexport_ru.pdf. там только «Инструкция по быстрой установке»
где dbexport_ru.pdf можно найти? -
АвторСообщения