Ответы в темах
-
АвторЗаписи
-
TawУчастникКак экспортировать данные только с определенныx каналов? Мне нужно описание sql запроса на стороне модуля.
TawУчастникНа стороне БД куча хранимых процедур и триггеров. Но у меня даже в Модуле не хочет работать sql запрос
IF (@cnlnum = 270 )
BEGIN
INSERT INTO cnldata (datetime, cnlnum, val, stat) VALUES (@dateTime, @cnlnum, @val, @stat);
END;
В логе ошибка
INSERT INTO cnldata (datetime, cnlnum, val, stat) VALUES’ at line 18
2019-06-25 15:45:33 Unable to enqueue current data. The maximum size of the queue 100 is exceeded
2019-06-25 15:45:33 Unable to enqueue current data. The maximum size of the queue 100 is exceeded
2019-06-25 15:45:34 Unable to enqueue current data. The maximum size of the queue 100 is exceeded
2019-06-25 15:45:34 Error export current data to DB MySQL — 127.0.0.1:3306: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘IF (601 = 270 )
BEGIN
INSERT INTO cnldata (datetime, cnlnum, val, stat) VALUES’ at line 18
TawУчастникПример на форуме только через хранимые процедуры. Это можно решить только через хранимые процедуры и триггеры?
В модуле скрипт такой:
IF (datepart (ss, @dateTime) < 7) and ( @cnlNum = 385 or @cnlNum = 402 or @cnlNum = 451 or @cnlNum = 418)
BEGIN
EXEC [dbo].[UNSP_GPA_Export] @dateTime, @cnlNum, @val;
END;
В базе хранимая процедура:/****** Object: StoredProcedure [dbo].[UNSP_GPA_Export] Script Date: 24.02.2019 16:05:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GOALTER PROCEDURE [dbo].[UNSP_GPA_Export]
(@moment datetime,
@CnlNum int,
@val1 float
)
AS
BEGIN
declare
@name varchar(20);SET NOCOUNT ON
set @name =
case
when @CnlNum = 385 then ‘UNSP_GPA1_power’
when @CnlNum = 402 then ‘UNSP_GPA2_power’
when @CnlNum = 451 then ‘UNSP_GPA3_power’
when @CnlNum = 418 then ‘UNSP_GPA4_power’
end;
Insert into dbo.data(moment,sensor,value) values (@moment,@name,@Val1)
END
TawУчастникВ темах по работе с модулем экспорта возникала проблема
2. По умолчанию скрипт экспортирует все каналы, как бы фильтровать чтобы экспортировать только выбранные каналы. Например у меня 100 каналов требуется экспортировать только 10 каналов.
“baur” решил ее, написав ответ в двух словах логику включил в SQL-скрипт
Как выглядит эта логика и можно ли поподробнее как вы сформировали Sql запрос. Можете его привести в этой теме?
TawУчастникВопрос к “baur”, и к остальным. Как вы решили проблему
2. По умолчанию скрипт экспортирует все каналы, как бы фильтровать чтобы экспортировать только выбранные каналы. Например у меня 100 каналов требуется экспортировать только 10 каналов.
Вы написали Спасибо, логику включил в SQL-скрипт
Как выглядит эта логика и можно ли поподробнее как вы сформировали Sql запрос. Можете его привести в этой теме?
TawУчастникПрописал путь custom/index.html — не помогает. Переместил папку custom в папку Interface для проекта — тоже не помогает. В чем может быть проблема?
TawУчастникДело в том, что я не отправляю события и архивы. Я отключил эти опции экспорта. Я отправляю только текущие данные. Ошибка сохраняется
2019-06-25 08:33:49 Unable to enqueue an event. The maximum size of the queue 100 is exceeded
Включил эти опции экспорта для событий и архивов и ошибка исчезла. Опция флажок экспорт для событий, архива и текущих данных создает ошибку если вы отключаете эту опцию.
Тогда вообще зачем эта опция-флажок для экспорта? Если ее убираешь то ошибка генерируется. Эта ошибка была чисто для событий и архива. Потому что я отключил флажок. На экспорт текущих данных эта ошибка не влияла. Я думаю надо доработать опции флажки и в сообщении об ошибке указать источник (возникла из за экспорта событий, текущих данных или архива).
Я удалил sql запросы в экспорте архивов и событий, но оставил флажки и все работает.
Отключаю флажки опции экспорта для архива и событий — и как следствие возникает эта ошибка.
TawУчастникВопросы:
1) В логе все равно ошибка.
Unable to enqueue an event. The maximum size of the queue 100 is exceeded
Но все работает. Что означает вообще эта ошибка?
2) Как сделать чтобы данные экспортировались только для одного канала с периодичностью в 1 секунду?
TawУчастникВ общем то сделал чтобы было количество строк в таблице ровно столько сколько каналов. Пришлось под себя БД переделать и немного изменить запрос Ramiros и как он сказал сделать primary столбец numcnl. Просто примеры запросов и структур БД в справке устарели. Действительно передает реальные текущие данные канала в строку БД. Также как и при импорте БД в режиме реального времени. Каждый канал для каждой строки БД.
В логе все равно ошибка.
Unable to enqueue an event. The maximum size of the queue 100 is exceeded
Но все работает. Что означает вообще эта ошибка?
TawУчастникПокоректировал запрос
INSERT INTO cnldata (datetime, cnlnum, val, stat) VALUES (@dateTime, @cnlnum, @val, @stat)
ON DUPLICATE KEY UPDATE datetime =@dateTime;
Модуль отправляет какую то партию данных а потом затихает
все равно выбивает ошибку
2019-06-24 15:46:37 Start ModDBExport module
2019-06-24 15:47:08 Unable to enqueue an event. The maximum size of the queue 100 is exceeded
TawУчастникв логе ошибка для запроса INSERT INTO cnldata (cnlnum, val, stat)
VALUES ( @cnlNum, @val, @stat)
ON DUPLICATE KEY UPDATE val = @val, stat = @statError export current data to DB MySQL — 127.0.0.1:3306: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘0, stat = 1’ at line 7
TawУчастникИли экспортировать данные только для одного канала а не для всех?
TawУчастникНо когда поле datatime было ключевым то оно при запуске сервера партию данных экспортирует а потом затихает с появлением в логе ошибки описанной выше и экспорт прекращался.
Получается в секунду нельзя делать больше одной записи. Но получается на деле больше одной записи.
Как сделать уникальным поле для канала, чтобы записывалась в таблицу и обновлялась только одна строка для канала?
TawУчастник
Дублирование записей в каналах. Хотелось бы чтобы был один канал и одно значение для него.
TawУчастникРаботает и реагирует на изменение канала.
-
АвторЗаписи