Здравствуйте. Помогите советом новичку.
Есть база с данными по материальным ценностям. Требуется реализовать удобный фильтр по различным критериям. Из-за не имения опыта выбрал связку IBDataSet->DataSourc->DBGrid. В этом случае я увидел 2 варианта реализации запросов по шаблону:
Вариант 1. Запрос у сервера. Использовать в запросе конструкцию "Select ... Where Field LIKE '%xxx1%' [AND Field LIKE '%xxx2%']". Работает замечательно, кроме одного "но" - запрос однозначно указывает на регистр запрашиваемой строчки 'xxx'.
Вариант 2. Локальная фильтрация. Из полностью запрошенной базы показываются только те записи, которые удовлетворяют условию. Констуируем условие с потерей зависимости от регистра, типа -
Вхождение(ВерхнРегистр(строка_запроса), ВерхнРегистр(очередная_запись)). Но этот вариант не устраивает тем, что при пробегании по отфильтрованным записям, бегунок полосы прокрутки соответсвует положению записи относительно всей базы (с невидимыми записями), и перемещается не равномерно.
Ни с первым, ни со вторым вариантом соглашаться не хочется. Посоветйте, пожалуйста, какие есть еще варианты. И много ли нужно будет переделывать?. Спасибо.
PS: Слышал, что для плавной прокрутки отфильтрованной части можно поиграться с индексами. Но пока не представляю этого.
Варианты реализации запросов с шаблонами.
Модератор: kdv
Мужики, реальное человеческое спасибо!
Реализовал полностью первый вариант - все прекрасно работает, даже просто летает - никакой локальной фильтрации в DataSet, фильтрует сервер.
sydenis
Upper работает и при FireBird 1.5 (мой случай)
WildSery
Спасибо за еще один вариант. Буду иметь ввиду.
Всем всех благ!

Реализовал полностью первый вариант - все прекрасно работает, даже просто летает - никакой локальной фильтрации в DataSet, фильтрует сервер.
sydenis
Upper работает и при FireBird 1.5 (мой случай)
WildSery
Спасибо за еще один вариант. Буду иметь ввиду.
Всем всех благ!
Эх, еще один вопрос появился, близкий к исходной теме.
Каким образом можно реализовать сортировку по алфавиту без учета регистра? Т.е. после обычной сортировки получаем:
----------
Алфавит
Бука
Веди
алгоритм
букинист
----------
А хотелось бы получить:
----------
алгоритм
Алфавит
Бука
букинист
Веди
----------
Возможно ли такое выполнить с помощью одного SQL запроса, или только через Хранимые Процедуры и т.п.
Спасибо.
PS: Если немного схитрить, то можно при вводе новых записей принудительно менять первую букву на "заглавную". Но все-таки, можно ли отсортировать по предложенному выше варианту?
Каким образом можно реализовать сортировку по алфавиту без учета регистра? Т.е. после обычной сортировки получаем:
----------
Алфавит
Бука
Веди
алгоритм
букинист
----------
А хотелось бы получить:
----------
алгоритм
Алфавит
Бука
букинист
Веди
----------
Возможно ли такое выполнить с помощью одного SQL запроса, или только через Хранимые Процедуры и т.п.
Спасибо.
PS: Если немного схитрить, то можно при вводе новых записей принудительно менять первую букву на "заглавную". Но все-таки, можно ли отсортировать по предложенному выше варианту?
http://www.ibase.ru/devinfo/ibrusfaq.htm
кроме того, читать про collate вообще, в т.ч. про Collate Kit.
кроме того, читать про collate вообще, в т.ч. про Collate Kit.