Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.13;
Скачать: CL | DM;

Вниз

фильтры и midas.dll   Найти похожие ветки 

 
Torin ©   (2006-06-08 11:09) [0]

Уважаемые мастера!
Столкнулся с такой проблемой.
После открытия набора данных (informix, TClientDataSet) накладываю ОЧЕНЬ БОЛЬШОЙ ФИЛЬТР.
Возникает ошибка
"Access violation at adress xxx in module midas.dll. Read of address xxx".
На "небольших" фильтрах все отрабатывает ОК.

Подскажите, плиз, с чем это связано (ограничение по количеству символов на фильтры в midas.dll? Но у меня отрабатывали фильтры с length > 256) и как с этим бороться. Переоткрытие с другим запросом не проходит - база данных ОГРОМНАЯ и запрос выполняется от 2-х до 5 минут. А разные фильтры накладывать нужно несколько раз.
Замена midas.dll на версию от Delphi2006 результата не дала.


 
Удалено модератором   (2006-06-08 11:11) [1]

Удалено модератором


 
Sergey13 ©   (2006-06-08 11:14) [2]

ИМХО.
С ОГРОМНЫМИ БД надо тщательнее работать с SQL и прорабатывать юзерский интерфейс, а не качать всю ОГРОМНУЮ на клиента для фильтрации. Может у тебя такой случай?


 
Torin ©   (2006-06-08 11:30) [3]

К сожалению, на изменение логики работы приложения нету ни времени, ни человеко-ресурсов, ни желания руководства. Пока что нужно закончить то что есть :(


 
ЮЮ ©   (2006-06-08 11:38) [4]


> Но у меня отрабатывали фильтры с length > 256) и как с этим
> бороться.


Может все-же ошибка в фильтре, а не ограничение по длине, коль уж  отрабатывали фильтры с length > 256


 
Torin ©   (2006-06-08 12:04) [5]

Фильтр перекопал. Там все ОК. К примеру, один из фильтров:
(NOT (SOTRUDNID IN (ДОФИГА ID через запятую))) AND (BANKNUMRAXYNOK="")
Уменьшаю выражение IN (Кооонкретно так уменьшаю) - все работает.
И нету привязки глюка к определенному ID - кровью проверено!


 
Desdechado ©   (2006-06-08 12:26) [6]

попробуй разбить один IN(...) на несколько IN(..)


 
Torin ©   (2006-06-08 12:37) [7]

Киаим образом раздить на несколько IN?
Имеется в виду SOTRUDNID IN (1, 2, 3, 4, 5) AND SOTRUDNID IN (6, 7, 8, 9, 0)?


 
Desdechado ©   (2006-06-08 12:39) [8]

а каким еще его можно разбить?


 
Sergey13 ©   (2006-06-08 12:45) [9]

Вместо AND OR


 
ЮЮ ©   (2006-06-08 12:47) [10]

тогда уж  
 (SOTRUDNID IN (1, 2, 3, 4, 5)) OR (SOTRUDNID IN (6, 7, 8, 9, 0))
что для фильтра не подарок

>Уменьшаю выражение IN (Кооонкретно так уменьшаю) - все работает.
Очевидно, что набор кодов возникает на клиенте. Не проше в клиентском наборе  заиметь поле типа IsIncluded и ставить 1 или 0, тогда и фильтр сократится до
AND (IsIncluded = 1)

или использовать OnFilterRecord где сравнивать запись со "списоком помеченных"


 
Torin ©   (2006-06-08 15:11) [11]

Разбил IN на несколько "кусков" - все заработало.
Пасибки! B)
Получается, что лажа была не в весе ВСЕГО фильтра а в к-ве items в выражении IN...


 
Sergey13 ©   (2006-06-08 15:18) [12]

2[11] Torin ©   (08.06.06 15:11)
Сколько же их у тебя было то?!!! 8-)


 
Torin ©   (2006-06-08 16:41) [13]

А было их-то у меня... 48 с чем-то тысяч символов (в Far)...


 
Sergey13 ©   (2006-06-08 16:49) [14]

2 [13] Torin ©   (08.06.06 16:41)
Абалдеть!!! 8-)))))))))))))))))))))))))))))))))))))


 
Johnmen ©   (2006-06-08 17:01) [15]

Фтопку такие программы, адназначна!
Афтара расстрелять.


 
atruhin ©   (2006-06-08 17:10) [16]


> 48 с чем-то тысяч символов (в Far)...

Уметь надо. А то тут все SQL, SQL. Фильтры - это круто! :)



Страницы: 1 вся ветка

Текущий архив: 2006.08.13;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.03 c
11-1130756522
xsepa
2005-10-31 14:02
2006.08.13
как создать Shape используя KOL


15-1152907772
Nic
2006-07-15 00:09
2006.08.13
Жара


3-1149754224
Still Swamp
2006-06-08 12:10
2006.08.13
Как мне получить список параметров IBTransaction?


9-1132596506
sco
2005-11-21 21:08
2006.08.13
OpenGl & *.gms


2-1153819232
Провинциал
2006-07-25 13:20
2006.08.13
А "ЗЮКИ" в меню...