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

wwGenericDataGrid - Фильтрация

СообщениеДобавлено: Пт фев 15, 2019 12:39 pm
intouch
Вопрос с выводом алармов в Grid. При одиночном запросе, таком как этот всё отлично выводится.
Код: Выделить всё
#Grid2.SQLString = "SELECT * FROM v_AlarmHistory WHERE(EventStamp >= ' "+StartDate+" ')";
#Grid2.Connect();

Но мне нужно написать длинный запрос и при использовании функции SQLStringAppend вылетают ошибки. При просмотре через sql profiler видно, что вторую строку он вообще не воспринимает, да и ошибки то выходят на команду SQLStringAppend, будто Grid её не знает.

Запрос:
Код: Выделить всё
#Grid2.SQLString = "SELECT * FROM v_AlarmHistory WHERE";
#Grid2.SQLStringAppend("(EventStamp >= ' "+StartDate+" ')");
#Grid2.Connect();

SQL Profiler
Изображение

p.s. Форум смотрел, пробовал по-разному, и с пробелом и без.

Re: wwGenericDataGrid - Фильтрация

СообщениеДобавлено: Пт фев 15, 2019 1:43 pm
Генератор зла
Форум, может, и смотрели. Но как то невнимательно.
viewtopic.php?f=5&t=4387&p=12503&hilit=SQLStringAppend#p12503
Тема короткая, вполне можно осилить и ознакомиться полностью, но ключевую фразу таки выделю :)
А если в конце строк ставить пробелы?

Re: wwGenericDataGrid - Фильтрация

СообщениеДобавлено: Пт фев 15, 2019 1:49 pm
intouch
Я же написал.
InTouch писал(а):p.s. Форум смотрел, пробовал по-разному,и с пробелом и без.

Re: wwGenericDataGrid - Фильтрация

СообщениеДобавлено: Пт фев 15, 2019 2:04 pm
Генератор зла
InTouch писал(а):Я же написал.
#Grid2.SQLString = "SELECT * FROM v_AlarmHistory WHERE";
#Grid2.SQLStringAppend(" (EventStamp >= ' "+StartDate+" ')");
#Grid2.Connect();

Попробуйте:
#Grid2.SQLString = "SELECT * FROM v_AlarmHistory WHERE ";
#Grid2.SQLStringAppend("(EventStamp >= ' "+StartDate+" ')");
#Grid2.Connect();

А вот пример части реально работающего запроса:
#Grid1.SQLString = "Set DateFormat dmy Select ";
#Grid1.SQLAppend( "Convert(nvarchar(12), EventStamp, 103) as Дата, Convert(nvarchar(10), EventStamp, 108) as Время, ");
#Grid1.SQLAppend( "Description as Описание, Type as Тип_тревоги, AlarmState as Состояние, Value as Текущее_значение, ");
#Grid1.SQLAppend( "CheckValue as Уставка, UnAckDuration as Длительность, Operator as Пользователь ");
#Grid1.SQLAppend( "From v_AlarmHistory ");
#Grid1.SQLAppend( "Where EventStamp >= " + AlmDBStartStr + " ");
#Grid1.SQLAppend( "And EventStamp < " + AlmDBEndStr + " ");
#Grid1.SQLAppend( "Order By Дата DESC, Время DESC");

Re: wwGenericDataGrid - Фильтрация

СообщениеДобавлено: Пт фев 15, 2019 4:01 pm
intouch
На этот скрипт InTouch всё равно ругается.
Генератор зла писал(а):Попробуйте:
#Grid2.SQLString = "SELECT * FROM v_AlarmHistory WHERE ";
#Grid2.SQLStringAppend("(EventStamp >= ' "+StartDate+" ')");
#Grid2.Connect();

А вот когда ввёл второй пример, уже что-то начало появляться в поле Grid, что очень странно синтаксис то один. Спасибо за помощь.

И ещё, какой формат должен быть у переменных "+ AlmDBStartStr +" и " + AlmDBEndStr + "?

Re: wwGenericDataGrid - Фильтрация

СообщениеДобавлено: Пт фев 15, 2019 4:45 pm
intouch
Вроде разобрался, апострофы с двух сторон от переменных поставил, и стал нормально воспринимать дату.

Re: wwGenericDataGrid - Фильтрация

СообщениеДобавлено: Вт мар 19, 2019 4:52 pm
intouch
Кто нибудь пользовался функциями #Grid1.FillColor или #Grid1.FillStyle? Нашёл про них только то, что они интовые.

Re: wwGenericDataGrid - Фильтрация

СообщениеДобавлено: Вт мар 19, 2019 5:22 pm
Генератор зла
Эти поля влияют на весь объект Grid, а не на отдельные его строки.