![]() |
|
![]() ![]() ![]() |
|
Bes |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
2dsergey: Да, конечно....
Если ты можешь пользоваться запросами, то что тебе мешает использовать LIKE ? Логично и по-моему оптимально |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Like не везде подойдет.
У меня база IB, "лежит под" линуксом. Доступ осуществляется как из под линукса, так и из под виндузы. При создании БД кодировка вообще не указывалась. Поэтому UPPER в єтом случае бессильна. Базу и программы писал не я, поэтому не стоит писать что-то типа "переделвай так или вот так". Исходник нет и автор не хочет их отдавать, сам понимаешь - это его хлеб. Я просто "выдираю" и "впихиваю" туда инфо програмным путем, уже своими программами. Я задавал на форуме вопрос с фильтрацией в таком идиотском случае, но так и не получил внятного ответа. Это сообщение отредактировал(а) dsergey - 21.1.2005, 13:11 |
|||
|
||||
Bes |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
2dsergey:
Интересно, в каких случаях может не подойти LIKE? Задавай еще раз свой вопрос - интересно. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
ты наверное забыл о регистронезависимом поиске
не спорь, это уже проверено |
|||
|
||||
Bes |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
2dsergey:
В споре рождается истина. Я не знаю, что такое регистронезависимый поиск. Если это всего лишь большие или маленькие буквы, то решается очень просто like.....Lcase(:AD) params[0].asstring:=LowerCase('GjdjDklDduDmd') |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Перевести сравниваемое значение в верхний или нижний регистр не проблема. А "SELECT UPPER(имя поля)" ты пробовал сделать запрос? Так вот в результате запроса в сетку попадают такие значения, какие находятся в этом поле, т.е. значения не переводятся в верхний регистр. Я специально проверил (IBConsole) |
|||
|
||||
Bes |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
2dsergey:
вообще не совсем понял, что значит "такие значения, какие находятся в этом поле". И какое отношение имеет к лайку селект, точнее зачем ты путаешь оператор при применении его к полю и к значению поля. Если ты переведешь параметр скажем в верхний регистр и будешь искать значения, верхний регистр которых (не сами, а верхний регистр которых) будет равен параметру то на поиск "Av" выпадет Av,aV,av,AV а что еще надо? Проверено в парадоксе, на скул-сервере такой проблемы вообще нет, да и на других базах думаю решается аналогично. |
|||
|
||||
Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
При чем здесь парадокс?? ![]() ![]() Я писал:
![]() Когда создавалась БД, то программист не указывал CharSet(символы хранятся как есть), а значит такие функции как Upper нормально работать не будут. ![]() Это сообщение отредактировал(а) dsergey - 24.1.2005, 16:10 |
||||
|
|||||
Bes |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
2dsergey:
Ладно, не буду спорить про линукс - не видел, но все равно, хранятся - не значит, что с ними нельзя работать и применять какие-либо операции и функции. Ты ведь не преобразовываешь их, не изменяешь, а просто обрабатываешь их некоторой функцией, которая всего лишь возвращает некоторое значение от аргумента, являясь своего рода переводчиком, а не переделывальщиком. А посему, я считаю, что для любой базы в любых системах, элементарные функции работы со строками должны выполняться для этого я и сказал про парадокс, где функции перевода символов отличаются от скульных Ucase и Upper. Может ты просто не то пишешь? И какая связь м/у настройками базы и работой элементарных функций.... ![]() |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
смотри, что получается, обрати внимание на тексты запросов
Это сообщение отредактировал(а) dsergey - 24.1.2005, 17:05 Присоединённый файл ( Кол-во скачиваний: 15 ) ![]() |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
||||
|
||||
Bes |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
2dsergey:
Блин!!!! Да, да, я тебя понял! Хм... а теперь напиши select remark from apartments where ucase([remark]) like '%E%' или у тебя upper Интересно, что получится? Если не трудно, пришли картинку. |
|||
|
||||
Alex |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 17 Всего: 162 |
База, к которой имеется доступ как из под как из под линукса, так и из под виндузы при своем создании не имеет НИКАКИХ ограничений на указание кодировки. Добавлено @ 08:56
И не важно под чем крутится сервак для базы данных это ВСЕРАВНО. -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
||||
|
|||||
Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 17 Всего: 162 |
dsergey Ознакомтесь со статьей http://www.ibase.ru/devinfo/ibrusfaq.htm
И настоятельно советую попробывать выполнить вот такой запрос:
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
ucase - неизвестная функция для IB |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |