![]() |
|
![]() ![]() ![]() |
|
snakesoft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.5.2007 Репутация: нет Всего: нет |
Здравствуйте, уважаемые форумчане! Разбираюсь с SQL в Delphi. Набросал простенькую таблицу с двумя параметрами: ФИО и номер телефона.Возник следующий вопрос: при попытке поиска по параметру "фио" обнаружил, что поиск чувствителен к регистру (в плане кириллицы, для латиницы подобной ситуации нет). В качестве конкретного примера интересует найти фамилию Петров/Сидоров по запросу "си" или "пе". На данный момент мне это не удается. Помогите пожалуйста разобраться. Исходный код прилагается. Спасибо.
Присоединённый файл ( Кол-во скачиваний: 4 ) ![]() |
|||
|
||||
Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Переводи значение строки таблицы в верхний/нижний регистр и строку поиска соответственно.
-------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
snakesoft |
|
||||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.5.2007 Репутация: нет Всего: нет |
Vas, посмотрите пожалуйста исходник. Скажите, как в процедуре Find в запросе
указать нижний регистр для значения ФИО в БД? в строке поиска понятно как ... |
||||
|
|||||
Vas |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Функции sqllite http://www.sqlite.org/lang_corefunc.html Должно получиться что-то типа такого
Это сообщение отредактировал(а) Vas - 18.6.2013, 07:02 -------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
||||
|
|||||
snakesoft |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.5.2007 Репутация: нет Всего: нет |
не работает ... |
||||||
|
|||||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: нет Всего: 128 |
А utf8encode зачем? и какая версия делфи используется? -------------------- There are always someone smarter than you... |
|||
|
||||
Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
А просто запрос что возвращает?
Ну и кодировку БД смотрите, lower работает только для ASCII. -------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: нет Всего: 128 |
но можно подключить какой-то плагин ICU...
-------------------- There are always someone smarter than you... |
|||
|
||||
DYUMON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 321 Регистрация: 17.6.2006 Где: Новосибирск Репутация: 2 Всего: 3 |
на хабре есть статья как боротся с этим в sqlite при помощи delphi.
|
|||
|
||||
snakesoft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.5.2007 Репутация: нет Всего: нет |
||||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: нет Всего: 128 |
snakesoft, тогда вопрос про utf8encode снят)
-------------------- There are always someone smarter than you... |
|||
|
||||
snakesoft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.5.2007 Репутация: нет Всего: нет |
Пробовал экспериментировать с sqlite3_create_collation
тоже не выходит ... какие еще варианты есть? Присоединённый файл ( Кол-во скачиваний: 1 ) ![]() |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: нет Всего: 128 |
Может еще сюда копнуть:
Хотя там наверное case sensitive опять же только для ascii Еще можно попробовать перекрыть функцию like своей, с помощью sqlite3_create_function() Это сообщение отредактировал(а) MetalFan - 19.6.2013, 08:35 -------------------- There are always someone smarter than you... |
|||
|
||||
snakesoft |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.5.2007 Репутация: нет Всего: нет |
Попробовал с sql_create_function, выдает ошибку на строке
Присоединённый файл ( Кол-во скачиваний: 13 ) ![]() |
||||||
|
|||||||
DYUMON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 321 Регистрация: 17.6.2006 Где: Новосибирск Репутация: 2 Всего: 3 |
||||
|
||||
snakesoft |
|
||||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.5.2007 Репутация: нет Всего: нет |
А какие параметры нужно указать в RU_CollationCompare?
|
||||
|
|||||
DYUMON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 321 Регистрация: 17.6.2006 Где: Новосибирск Репутация: 2 Всего: 3 |
эта функция такая
|
|||
|
||||
snakesoft |
|
||||||||||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.5.2007 Репутация: нет Всего: нет |
Попробовал с RU_CollationCompare - результат тот же. Не могу понять, что я неправильно делаю... Добавлено через 7 минут и 6 секунд Пробовал еще с
безрезультатно
а если так
Присоединённый файл ( Кол-во скачиваний: 6 ) ![]() |
||||||||||
|
|||||||||||
![]() ![]() ![]() |
Правила форума "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. |