Browse отобрать записи (Mysql)

CWICWEB, ClarioNET и пр.

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Browse отобрать записи (Mysql)

Сообщение gopstop2007 »

Как правильно в стандартный Browse отфильтровать (отобрать) записи на удаленном сервере (Mysql), чтобы Browse получал уже отобранные записи с сервера.
Условие фильтра не постоянны.
Если раньше обсуждалось, киньте ссылку пожалуйста.
Спасибо за внимание и помощь.

С10 ABC
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Browse отобрать записи (Mysql)

Сообщение kreator »

В методе ApplyFilter после Parent Call я пишу:

Код: Выделить всё

BRW1::View:Browse{prop:SQLFilter} = 'a.dat_uv is not null'
 
Если в Actions уже есть условия фильтрации, то:

Код: Выделить всё

BRW1::View:Browse{prop:SQLFilter} = '+a.dat_uv is not null'
 
We are hard at work… for you. :)
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Browse отобрать записи (Mysql)

Сообщение gopstop2007 »

kreator писал(а): 18 Ноябрь 2018, 15:23 В методе ApplyFilter после Parent Call я пишу:

Код: Выделить всё

BRW1::View:Browse{prop:SQLFilter} = 'a.dat_uv is not null'
 
Если в Actions уже есть условия фильтрации, то:
Спасибо kreator
У меня в Action пусто, если нет в Action Filter или Range Limit Field значений, вообще не фильтрует, загружает все имеющиеся записи.
kreator писал(а): 18 Ноябрь 2018, 15:23

Код: Выделить всё

BRW1::View:Browse{prop:SQLFilter} = '+a.dat_uv is not null'
 
Достаточно добавить значение для фильтрации в Action Filter или Range Limit Field все работает, но очень медленно, на 30 записей 3-5 сек, без фильтра меньше 1 сек на все записи. Всего 40 записей в базе.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Browse отобрать записи (Mysql)

Сообщение kreator »

gopstop2007 писал(а): 19 Ноябрь 2018, 11:22 Достаточно добавить значение для фильтрации в Action Filter или Range Limit Field все работает, но очень медленно, на 30 записей 3-5 сек, без фильтра меньше 1 сек на все записи. Всего 40 записей в базе.
Это не понятно. Кларион сам формирует запрос, если что-то написано в Action Filter или Range Limit Field. Результат (какой запрос посылается серверу) можно по-простому посмотреть в методе ResetQueue после Parent Call, набрав:

Код: Выделить всё

stop(MyTable{prop:SQL})
, где MyTable первая таблица в броузе. И просто надо убедиться, что запросы получаются одинаковыми (когда сам делаешь и когда Кларион на автомате формирует). Если запросы одинаковые посылаются серверу, а время разное, то где-то что-то не так. В этом случае надо дальше разбираться. Может (чисто гипотетически) в Reset-полях много переменных и метод ResetQueue вызывается много раз.
We are hard at work… for you. :)
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Browse отобрать записи (Mysql)

Сообщение Yufil »

Надо посмотреть трассировку, что там реально происходит. Возможно, в embed есть ещё какие-то необдуманные вставки или на сервере возникает ошибка...
Ответить