Страница 1 из 1

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

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

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

СообщениеДобавлено: Ср фев 19, 2014 11:18 am
Генератор зла
Есть утилитка, вернее ActiveX компонент для InTouch, wwGenericSQLGrid. Позволяет просматривать значения из БД (как и AlmDBView). В этом компоненте есть ф-ция печати.
http://files.mail.ru/3ED942C9812847F0A27393EC76C6133B

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

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

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

СообщениеДобавлено: Ср фев 19, 2014 5:06 pm
Генератор зла
Александр писал(а):В настройках DataGrid указал ServerName: localhost

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

В файл пишется содержимое грида. Сделайте выборку за нужный промежуток времени и печатайте.

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

СообщениеДобавлено: Ср фев 19, 2014 5:44 pm
Александр
Выставил IP адрес результат тот же. отрицательный..
А не нужно сделать кнопку для "конекта"? или автоматом должно все быть?
Где Статус подключения посмотреть, если это параметр Enable то он равен -1

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

СообщениеДобавлено: Ср фев 19, 2014 5:49 pm
Генератор зла
Александр писал(а):А не нужно сделать кнопку для "конекта"? или автоматом должно все быть?

Я же pdf-доку приложил.

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

СообщениеДобавлено: Чт фев 20, 2014 1:01 pm
Александр
В pdf-ке не написано что такое SQLString и что там надо указывать....( Я с SQL вообще не знаком.. Если не трудно и не лень не могли бы Вы написать пару примеров, чтоб мне было от чего оттолкнуться

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

СообщениеДобавлено: Чт фев 20, 2014 1:26 pm
Генератор зла
Александр писал(а):В pdf-ке не написано что такое SQLString и что там надо указывать....

Это строка SQL-запроса, что то вида:
Select * from v_AlarmHistory

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

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

Что посоветуете?

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

СообщениеДобавлено: Вт фев 25, 2014 2:11 pm
skom
Я бы попробовал сделать средствами sql server, что-то наподобие этого: http://blog.sqlauthority.com/2013/03/05/sql-server-exporting-query-results-to-csv-using-sqlcmd/

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

СообщениеДобавлено: Ср фев 26, 2014 12:01 am
Генератор зла
Александр писал(а):но когда пытаюсь вывести больше трех полей выскакивает ошибка.

В InTouch ограничение на размер строки = 131 символ. Поэтому
SQLString = "Начало SQL запроса, не более 131 символа";
SQLStringAppend("Продолжение SQL запроса, не более 131 символа");
SQLStringAppend("Повторяем до экстазу");
Execute ();

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'.

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

СообщениеДобавлено: Ср фев 26, 2014 3:47 pm
skom
Александр писал(а):Если так
#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.

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();
И вообще, добейтесь работоспособности на простом запросе, успеете накрутить условий ещё.