AlmDBView запись алармов в файл csv

Системная платформа - продукт для комплексной автоматизации процессов предприятия от Wonderware.

AlmDBView запись алармов в файл csv

Сообщение Александр » Вт фев 18, 2014 1:17 pm

Здравствуйте! Запись алармов производится в базу SQL (WWAlmDb). В InTouch они отображаются с помощью AlmDBView. Заказчик просит сделать чтобы была возможность вывести в AlmDBView алармы за указанный период времени и чтобы была кнопка для записи данного списка в файл. Почитал кучу мануалов и в них никаких способов кроме "аларм принтера" не указано.
Александр
 
Сообщения: 84
Зарегистрирован: Пт май 25, 2012 3:25 pm

Re: AlmDBView запись алармов в файл csv

Сообщение Генератор зла » Ср фев 19, 2014 11:18 am

Есть утилитка, вернее ActiveX компонент для InTouch, wwGenericSQLGrid. Позволяет просматривать значения из БД (как и AlmDBView). В этом компоненте есть ф-ция печати.
http://files.mail.ru/3ED942C9812847F0A27393EC76C6133B
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: AlmDBView запись алармов в файл csv

Сообщение Александр » Ср фев 19, 2014 3:42 pm

ЧТо то не получается подключиться... В настройках DataGrid указал ServerName: localhost, Database: WWAlmDB, ну и соответственно пользователь и пароль.
AlmDBView c теми же настройками подключается к базе...
И сразу же ещё один вопрос можно ли сделать выбор начальной и конечной даты и времени для записи в файл?
Александр
 
Сообщения: 84
Зарегистрирован: Пт май 25, 2012 3:25 pm

Re: AlmDBView запись алармов в файл csv

Сообщение Генератор зла » Ср фев 19, 2014 5:06 pm

Александр писал(а):В настройках DataGrid указал ServerName: localhost

Localhost замените на IP
Александр писал(а):можно ли сделать выбор начальной и конечной даты и времени для записи в файл?

В файл пишется содержимое грида. Сделайте выборку за нужный промежуток времени и печатайте.
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: AlmDBView запись алармов в файл csv

Сообщение Александр » Ср фев 19, 2014 5:44 pm

Выставил IP адрес результат тот же. отрицательный..
А не нужно сделать кнопку для "конекта"? или автоматом должно все быть?
Где Статус подключения посмотреть, если это параметр Enable то он равен -1
Александр
 
Сообщения: 84
Зарегистрирован: Пт май 25, 2012 3:25 pm

Re: AlmDBView запись алармов в файл csv

Сообщение Генератор зла » Ср фев 19, 2014 5:49 pm

Александр писал(а):А не нужно сделать кнопку для "конекта"? или автоматом должно все быть?

Я же pdf-доку приложил.
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: AlmDBView запись алармов в файл csv

Сообщение Александр » Чт фев 20, 2014 1:01 pm

В pdf-ке не написано что такое SQLString и что там надо указывать....( Я с SQL вообще не знаком.. Если не трудно и не лень не могли бы Вы написать пару примеров, чтоб мне было от чего оттолкнуться
Александр
 
Сообщения: 84
Зарегистрирован: Пт май 25, 2012 3:25 pm

Re: AlmDBView запись алармов в файл csv

Сообщение Генератор зла » Чт фев 20, 2014 1:26 pm

Александр писал(а):В pdf-ке не написано что такое SQLString и что там надо указывать....

Это строка SQL-запроса, что то вида:
Select * from v_AlarmHistory
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: AlmDBView запись алармов в файл csv

Сообщение Александр » Вт фев 25, 2014 1:57 pm

Проблемка следующая... нужно вывести в таблице нужные поля, но когда пытаюсь вывести больше трех полей выскакивает ошибка.
#Grid1.SQLString = "SELECT EventStamp,TagName,Value,AlarmState(и т.д.) FROM v_AlarmHistory WHERE(EventStamp >= ' "+StartData+" ' AND EventStamp <= ' "+EndData+" ')";

Что посоветуете?
Александр
 
Сообщения: 84
Зарегистрирован: Пт май 25, 2012 3:25 pm

Re: AlmDBView запись алармов в файл csv

Сообщение skom » Вт фев 25, 2014 2:11 pm

Я бы попробовал сделать средствами sql server, что-то наподобие этого: http://blog.sqlauthority.com/2013/03/05/sql-server-exporting-query-results-to-csv-using-sqlcmd/
skom
 
Сообщения: 173
Зарегистрирован: Вт окт 02, 2007 5:25 pm

Re: AlmDBView запись алармов в файл csv

Сообщение Генератор зла » Ср фев 26, 2014 12:01 am

Александр писал(а):но когда пытаюсь вывести больше трех полей выскакивает ошибка.

В InTouch ограничение на размер строки = 131 символ. Поэтому
SQLString = "Начало SQL запроса, не более 131 символа";
SQLStringAppend("Продолжение SQL запроса, не более 131 символа");
SQLStringAppend("Повторяем до экстазу");
Execute ();
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: AlmDBView запись алармов в файл csv

Сообщение Александр » Ср фев 26, 2014 3:23 pm

Если так
#Grid1.SQLString = "SELECT EventStamp,TagName,";
#Grid1.SQLStringAppend("Value,Area FROM v_AlarmHistory");
#Grid1.SQLStringAppend("WHERE(EventStamp <= ' "+ StartData +" ' ");
#Grid1.SQLStringAppend("AND EventStamp <= ' "+ EndData +" ' ");
#Grid1.Execute();
то выдает ошибку: Error processing 'Grid1.SQLStringAppend' on method call (resolution).
Unknown property or method name (DISP_E_UNKNWNNAME).

Если так
#Grid1.SQLString = "SELECT EventStamp,TagName,";
#Grid1.SQLAppend("Value,Area FROM v_AlarmHistory");
#Grid1.SQLAppend("WHERE(EventStamp <= ' "+ StartData +" ' ");
#Grid1.SQLAppend("AND EventStamp <= ' "+ EndData +" ' ");
#Grid1.Execute();
то выдает ошибку: Incorrect syntax near the keyword 'FROM'.
Александр
 
Сообщения: 84
Зарегистрирован: Пт май 25, 2012 3:25 pm

Re: AlmDBView запись алармов в файл csv

Сообщение skom » Ср фев 26, 2014 3:47 pm

Александр писал(а):Если так
#Grid1.SQLString = "SELECT EventStamp,TagName,";
#Grid1.SQLAppend("Value,Area FROM v_AlarmHistory");
#Grid1.SQLAppend("WHERE(EventStamp <= ' "+ StartData +" ' ");
#Grid1.SQLAppend("AND EventStamp <= ' "+ EndData +" ' ");
#Grid1.Execute();
то выдает ошибку: Incorrect syntax near the keyword 'FROM'.


А если в конце строк ставить пробелы? :)
Берите какой-нибудь sql profiler и смотрите какой реально запрос приходит в SQL Server от Grid.
skom
 
Сообщения: 173
Зарегистрирован: Вт окт 02, 2007 5:25 pm

Re: AlmDBView запись алармов в файл csv

Сообщение Генератор зла » Ср фев 26, 2014 11:49 pm

#Grid1.SQLString = "SELECT EventStamp,TagName,";
#Grid1.SQLStringAppend("Value,Area FROM v_AlarmHistoryпробел");
#Grid1.SQLStringAppend("WHERE(EventStamp <= ' "+ StartData +" ' ");
#Grid1.SQLStringAppend("AND EventStamp <= ' "+ EndData +" ' ");
#Grid1.Execute();
И вообще, добейтесь работоспособности на простом запросе, успеете накрутить условий ещё.
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm


Вернуться в Wonderware System Platform

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3