Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сложная фильтрация, база данных 
:(
    Опции темы
Bes
Дата 21.1.2005, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



2dsergey: Да, конечно....
Если ты можешь пользоваться запросами, то что тебе мешает использовать LIKE ? Логично и по-моему оптимально
PM MAIL   Вверх
Akella
Дата 21.1.2005, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Like не везде подойдет.
У меня база IB, "лежит под" линуксом. Доступ осуществляется как из под линукса, так и из под виндузы. При создании БД кодировка вообще не указывалась. Поэтому UPPER в єтом случае бессильна.
Базу и программы писал не я, поэтому не стоит писать что-то типа "переделвай так или вот так". Исходник нет и автор не хочет их отдавать, сам понимаешь - это его хлеб.
Я просто "выдираю" и "впихиваю" туда инфо програмным путем, уже своими программами. Я задавал на форуме вопрос с фильтрацией в таком идиотском случае, но так и не получил внятного ответа.

Это сообщение отредактировал(а) dsergey - 21.1.2005, 13:11
PM MAIL   Вверх
Bes
Дата 21.1.2005, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



2dsergey:
Интересно, в каких случаях может не подойти LIKE?
Задавай еще раз свой вопрос - интересно.
PM MAIL   Вверх
Akella
Дата 22.1.2005, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



ты наверное забыл о регистронезависимом поиске

не спорь, это уже проверено
PM MAIL   Вверх
Bes
Дата 24.1.2005, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



2dsergey:
В споре рождается истина.
Я не знаю, что такое регистронезависимый поиск.
Если это всего лишь большие или маленькие буквы, то решается очень просто
like.....Lcase(:AD)
params[0].asstring:=LowerCase('GjdjDklDduDmd')

PM MAIL   Вверх
Akella
Дата 24.1.2005, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(Bes @ 24.1.2005, 07:56)
like.....Lcase(:AD)
params[0].asstring:=LowerCase('GjdjDklDduDmd')

Перевести сравниваемое значение в верхний или нижний регистр не проблема.

А "SELECT UPPER(имя поля)" ты пробовал сделать запрос?
Так вот в результате запроса в сетку попадают такие значения, какие находятся в этом поле, т.е. значения не переводятся в верхний регистр. Я специально проверил (IBConsole)
PM MAIL   Вверх
Bes
Дата 24.1.2005, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



2dsergey:
вообще не совсем понял, что значит "такие значения, какие находятся в этом поле".
И какое отношение имеет к лайку селект, точнее зачем ты путаешь оператор при применении его к полю и к значению поля.
Если ты переведешь параметр скажем в верхний регистр и будешь искать значения, верхний регистр которых (не сами, а верхний регистр которых) будет равен параметру то на поиск
"Av"
выпадет
Av,aV,av,AV а что еще надо?
Проверено в парадоксе, на скул-сервере такой проблемы вообще нет, да и на других базах думаю решается аналогично.

PM MAIL   Вверх
Akella
Дата 24.1.2005, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(Bes @ 24.1.2005, 13:17)
Проверено в парадоксе,

При чем здесь парадокс?? smile smile

Я писал:
Цитата(dsergey @ 21.1.2005, 13:08)
У меня база IB, "лежит под" линуксом.
smile

Когда создавалась БД, то программист не указывал CharSet(символы хранятся как есть), а значит такие функции как Upper нормально работать не будут. smile

Это сообщение отредактировал(а) dsergey - 24.1.2005, 16:10
PM MAIL   Вверх
Bes
Дата 24.1.2005, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



2dsergey:
Ладно, не буду спорить про линукс - не видел,
но все равно, хранятся - не значит, что с ними нельзя работать и применять какие-либо операции и функции.
Ты ведь не преобразовываешь их, не изменяешь, а просто обрабатываешь их некоторой функцией, которая всего лишь возвращает некоторое значение от аргумента, являясь своего рода переводчиком, а не переделывальщиком.
А посему, я считаю, что для любой базы в любых системах, элементарные функции работы со строками должны выполняться для этого я и сказал про парадокс, где функции перевода символов отличаются от скульных Ucase и Upper.
Может ты просто не то пишешь?
И какая связь м/у настройками базы и работой элементарных функций.... smile
PM MAIL   Вверх
Akella
Дата 24.1.2005, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



смотри, что получается, обрати внимание на тексты запросов

Это сообщение отредактировал(а) dsergey - 24.1.2005, 17:05

Присоединённый файл ( Кол-во скачиваний: 15 )
Присоединённый файл  2.JPG
PM MAIL   Вверх
Akella
Дата 24.1.2005, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



---

Присоединённый файл ( Кол-во скачиваний: 15 )
Присоединённый файл  1.JPG
PM MAIL   Вверх
Bes
Дата 25.1.2005, 07:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



2dsergey:
Блин!!!! Да, да, я тебя понял!
Хм... а теперь напиши
select remark from apartments where
ucase([remark]) like '%E%'
или у тебя upper
Интересно, что получится?
Если не трудно, пришли картинку.

PM MAIL   Вверх
Alex
Дата 25.1.2005, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 17
Всего: 162



Цитата(dsergey @ 21.1.2005, 13:08)
У меня база IB, "лежит под" линуксом. Доступ осуществляется как из под линукса, так и из под виндузы. При создании БД кодировка вообще не указывалась.

База, к которой имеется доступ как из под как из под линукса, так и из под виндузы при своем создании не имеет НИКАКИХ ограничений на указание кодировки.

Добавлено @ 08:56
Цитата(dsergey @ 21.1.2005, 13:08)
У меня база IB, "лежит под" линуксом.

И не важно под чем крутится сервак для базы данных это ВСЕРАВНО.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Alex
Дата 25.1.2005, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 17
Всего: 162



dsergey Ознакомтесь со статьей http://www.ibase.ru/devinfo/ibrusfaq.htm

И настоятельно советую попробывать выполнить вот такой запрос:
Код

SELECT * FROM MYTABLE
WHERE UPPER(MYFIELD COLLATE PXW_CYRL) = 'ВАСЯ'



--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Akella
Дата 26.1.2005, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(Bes @ 25.1.2005, 07:12)
select remark from apartments where
ucase([remark]) like '%E%'
или у тебя upper
Интересно, что получится?
Если не трудно, пришли картинку.


ucase - неизвестная функция для IB
PM MAIL   Вверх
Страницы: (4) Все 1 [2] 3 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0875 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.