Страница 1 из 1
Фильтрация алармов при выгрузке в отчет (SQL)

Добавлено:
Вт авг 16, 2016 2:01 pm
169409
Столкнулся с проблемой, на сколько я понял, длины запроса SQL.
Сделал форму выгрузки отчетов в эксель, использовал:
wwwGenericDataGrid - для выгрузки
DTPicke - календарь для удобного выбора даты
AlarmTreeViewerCtrl - для удобного выбора названия группы алармов
что получилось:
#Grid3.SQLString = "select * from v_AlarmHistory where (EventStamp >= ' "+AlarmHistory_Start+" ' and EventStamp <= ' "+AlarmHistory_Stop+" ')";
где AlarmHistory_Start и AlarmHistory_Stop стринговые теги с датой и временем, получаемые из DTPicke
все хорошо работает
Alarm_Name = #AlarmTreeViewerCtrl3.GetSelectedElementName (); - выборка имени группы из AlarmTreeViewerCtrl
#Grid3.SQLString = "select * from v_AlarmHistory where v_AlarmHistory.Area = Alarm_Name "; - формирование отчета по имени группы
так же все работает
Но как только я попытался объединить эти запросы, столкнулся с кучей разных ошибок (в зависимости от того, как объединял). В целом я так понял что интачу не нравится слишком большая длина запроса, можно ли это как то обойти?
Re: Фильтрация алармов при выгрузке в отчет (SQL)

Добавлено:
Вт авг 16, 2016 2:21 pm
Генератор зла
InTouch не поддерживает строки более 131 символа.
Длинный запрос надо запихивать либо в хранимую процедуру БД SQL, либо "закопать" в wwGenericDataGrid.
Re: Фильтрация алармов при выгрузке в отчет (SQL)

Добавлено:
Вт авг 16, 2016 3:17 pm
169409
А нельзя ли как то разделить строки?
Или выполнить процедуру последовательно с сохранением первого результата т.е. сначала фильтруем по дате, а потом произвести выборку только тех строк, где присутствует имя аларма?
Re: Фильтрация алармов при выгрузке в отчет (SQL)

Добавлено:
Вт авг 16, 2016 3:24 pm
Генератор зла
Можно.
Для этой цели в InTouch есть ф-ция SQLAppendStatement()
А в wwGenericSQLGrid есть метод SQLStringAppend()
О чём я и толковал.
Re: Фильтрация алармов при выгрузке в отчет (SQL)

Добавлено:
Вт авг 16, 2016 3:33 pm
169409
А не подскажите, где можно мануал по синтаксису и использованию найти? А то я по своей документации прошелся, не нашел совпадений.
Re: Фильтрация алармов при выгрузке в отчет (SQL)

Добавлено:
Вт авг 16, 2016 3:36 pm
Генератор зла
169409 писал(а):по синтаксису и использованию
чего именно?
Re: Фильтрация алармов при выгрузке в отчет (SQL)

Добавлено:
Вт авг 16, 2016 3:38 pm
169409
SQLAppendStatement()
SQLStringAppend()
Re: Фильтрация алармов при выгрузке в отчет (SQL)

Добавлено:
Вт авг 16, 2016 3:42 pm
Генератор зла
SQLAppendStatement() - стд. ф-ция InTouch, см. Help
SQLStringAppend()
https://cloud.mail.ru/public/4jRe/BNBQ5oHxh
Re: Фильтрация алармов при выгрузке в отчет (SQL)

Добавлено:
Вт авг 16, 2016 3:43 pm
169409
#Grid1.SQLString = "SELECT EventStamp,TagName,";
#Grid1.SQLStringAppend("Value,Area FROM v_AlarmHistory");
#Grid1.SQLStringAppend("WHERE(EventStamp <= ' "+ StartData +" ' ");
#Grid1.SQLStringAppend("AND EventStamp <= ' "+ EndData +" ' ");
#Grid1.Execute();
поискал по форуму, был подобный вопрос с таким вот синтаксисом. Я правильно понял что SQLStringAppend последовательно подсовывает часть строки и исполняет ее?
Re: Фильтрация алармов при выгрузке в отчет (SQL)

Добавлено:
Вт авг 16, 2016 3:46 pm
169409
Re: Фильтрация алармов при выгрузке в отчет (SQL)

Добавлено:
Вт авг 16, 2016 3:47 pm
Генератор зла
169409 писал(а):Я правильно понял что SQLStringAppend последовательно подсовывает часть строки и исполняет ее?
Нет, не правильно. Исполняет строку совсем другой оператор.
Re: Фильтрация алармов при выгрузке в отчет (SQL)

Добавлено:
Чт авг 18, 2016 3:38 pm
169409
SQLStringAppend() не работает вообще, просто ругается что не знает такого метода. Перепробовал все, начиная с простейших запросов, даже с пустой строкой.
Re: Фильтрация алармов при выгрузке в отчет (SQL)

Добавлено:
Чт авг 18, 2016 5:06 pm
Генератор зла
Для какого эл-та Вы используете этот метод?
Re: Фильтрация алармов при выгрузке в отчет (SQL)

Добавлено:
Пт авг 19, 2016 1:54 pm
169409
Для датагрида, как вы и написали.
Я уже разобрался как строчки объединять, вчера все получилось.
Спасибо за подсказки
