On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение



Пост N: 123
Зарегистрирован: 07.08.06
ссылка на сообщение  Отправлено: 23.04.13 15:32. Заголовок: ax_setServerAOF(cExpr): длина выражения cExpr чем-то ограничена ?


hi all

subj.

Мну почему-то показалось однажды, что после 250 будут траблы. Но то был АДС 6.11
Давно уже сижу на 7.0, проверил только что на выражении в 570 знаков - ax_EvalServerAOF() показывает результат >0, т.е. ошибки нету.

Кто-нить исследовал эту тему ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 15 [только новые]


администратор




Пост N: 3088
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.04.13 15:42. Заголовок: ага , ограничена. чи..


ага , ограничена.
читай тут

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 124
Зарегистрирован: 07.08.06
ссылка на сообщение  Отправлено: 23.04.13 16:19. Заголовок: --- quote --- Maximu..


--- quote ---
Maximum traditional record filter expression text length


65,534 characters
--- quote ---

бгы... наглая бесстыдная ложь...
на 570-символьном выражении (синтаксически корректном) установка "традиционного фильтра записей" выплёвывает "Operation too complex" :-)
Фильтр имеет вид:
!(CHR(255) $ NAME).AND.(NO="1234".OR.NO="2345".OR. <...> .OR.NO="9876")


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3091
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.04.13 16:21. Заголовок: p519446 пишет: бгы...


p519446 пишет:

 цитата:
бгы... наглая бесстыдная ложь...


Ну может для Clipper эта цифирь и поменьше будет и глядеть надо другой тутор

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 125
Зарегистрирован: 07.08.06
ссылка на сообщение  Отправлено: 23.04.13 16:29. Заголовок: клипперное ограничен..


клипперное ограничение меня мало интересует: почти все фильтры идут через АДС.
К счастью, я нигде жестко не кодировал магическое число типа "250", везде указана константа компиляции.

Надо будет поэкспериментировать и увеличить её.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3092
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.04.13 18:14. Заголовок: Крутятские у тебя фи..


Крутятские у тебя фильтра (в смысле длинные)
Для чего нужны такие ? Для бровса , построения отчета ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 126
Зарегистрирован: 07.08.06
ссылка на сообщение  Отправлено: 14.05.13 11:05. Заголовок: Для отчетов, вестимо..


Для отчетов, вестимо.
Усер выбирает набор пунктов из некоторого множества, он может выбрать любое их число.
Кол-во выбранных пунктов определяет длину условия вида '(some_id="091523".or.some_id="123407".or. ...)'
Когда-то я напарывался на ограничение длины условия именно в АДСе, но не помню, при каких обст-вах и какой версии был тот АДС.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 127
Зарегистрирован: 07.08.06
ссылка на сообщение  Отправлено: 14.05.13 11:06. Заголовок: ЗЫ. Дим, пардон, что..


ЗЫ. Дим, пардон, что ответил с таким опозданием. В форум редко захожу. Если что-то интересно, мыль - всегда буду рад пообщаться.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3145
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.05.13 11:38. Заголовок: p519446 пишет: Для ..


p519446 пишет:

 цитата:
Для отчетов, вестимо.


Ни когда не юзаю фильтра в отчетах. Хожу по индексу. Но это дело хозяйское конечно ;)

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 128
Зарегистрирован: 07.08.06
ссылка на сообщение  Отправлено: 14.05.13 11:51. Заголовок: > Ни когда не юз..


> Ни когда не юзаю фильтра в отчетах. Хожу по индексу. Но это дело хозяйское конечно ;)

Вот эта вот хрень:
SELECT(cSomeALias)
SET ORDER TO 0 // !!!
AX_SETSERVERAOF("многабукаф", .T.) // !!! поставить обязательно второй аргумент = .T. !!!
DBGOTOP()
WHILE !EOF()
...
ENDD
- выполнится не просто быстро, а ОЧЕНЬ быстро. Даже при ax_EvalServerAOF() = 2, т.е. когда индексы не могут быть заюзаны в полный рост.
Главное - set order to 0 перед тем, как поставить AOF-фильтр.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 129
Зарегистрирован: 07.08.06
ссылка на сообщение  Отправлено: 14.05.13 11:51. Заголовок: PS. Индексов ведь на..


PS. Индексов ведь на каждый чих не напасёшься....

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 160
Зарегистрирован: 07.08.06
ссылка на сообщение  Отправлено: 07.06.13 16:10. Заголовок: Поднимаю тему. Напор..


Поднимаю тему.
Напоролся я всё-таки на какое-то скрытое ограничение.

Вот на таком фильтре ax_evalaofexpr() вернёт число 2 (т.е. типа ошибки НЕТ, хотя фильтр и не полностью оптимизированный), но ax_setserveraof() вернёт .F. и при этом ax_error() будет равен 6605
(Advantage Error Code 6605 Client Comm Layer Received More Data from the Advantage Database Server than it was Expecting)

NDOC+YEMO="762EL3201304"
.AND.(STOK="000055".OR.STOK="000067".OR.STOK="000068".OR.STOK="000056".OR.STOK="
000057".OR.STOK="000063".OR.STOK="000064".OR.STOK="000058".OR.STOK="000059".OR.S
TOK="000062".OR.STOK="000065".OR.STOK="000158".OR.STOK="000159".OR.STOK="000160"
.OR.STOK="000080")
.AND.(WRPOST+WRCODE="ST300104".OR.WRPOST+WRCODE="ST300109".OR.WRPOST+WRCODE="ST300110".OR.
< ... дальше еще ~1500 байт аналогичного дерьма...>
.OR.WRPOST+WRCODE="ST200255")


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3209
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 07.06.13 16:31. Заголовок: Не проще ли юзать ..


Не проще ли юзать API клиентского AOF ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 161
Зарегистрирован: 07.08.06
ссылка на сообщение  Отправлено: 07.06.13 16:38. Заголовок: Оно у мну валит прог..


Оно у мну валит прогу по GPF, в самых разных местах причём. Причину установить не смог, некогда было :(

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3210
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 07.06.13 17:21. Заголовок: p519446 Ну тогда вм..


p519446
Ну тогда вместо них можно юзать RIO фильтра из SIX , просто переоткрыв базу в другой рабочей области с RDD SIX.
Там есть подобный механизм и даже более гибкий.
Проверено работает и не медленно.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 162
Зарегистрирован: 07.08.06
ссылка на сообщение  Отправлено: 08.06.13 09:05. Заголовок: Для составления отче..


Для составления отчетов, когда таблица только читается - да, это выход. За идею спс, попробую.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 267
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет