Ответы в темах
-
АвторЗаписи
-
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 = 2065Aidar
УчастникПрошу прощения сильно затупил!
Я весь «Пример таблиц и 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 можно найти? -
АвторЗаписи