Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.08.13;
Скачать: [xml.tar.bz2];

Вниз

фильтры и 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 1.358 c
2-1153721486
MSVN
2006-07-24 10:11
2006.08.13
Компанент DCPcrypt


4-1145447500
Elen
2006-04-19 15:51
2006.08.13
Определение загруженности процессора


15-1153286445
Ega23
2006-07-19 09:20
2006.08.13
С Днём рождения! 19 июля


1-1151329908
Alexey V.
2006-06-26 17:51
2006.08.13
Взаимное влияние D5 и D7


15-1152804432
AlexanderMS
2006-07-13 19:27
2006.08.13
Редактор значков ICO.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский