Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Kris_1
5 / 5 / 0
Регистрация: 16.01.2013
Сообщений: 16
#1

Нужно сделать регистронезависимый поиск по таблице, содержащей русские буквы - Программирование Android

17.01.2013, 00:04. Просмотров 976. Ответов 3
Метки нет (Все метки)

Здравствуйте! Мне нужно добавить возможность выборки из базы данных sqlite по русским буквам (содержащие известнрую проблему с like и uppercase). Делаю все по этой статье http://habrahabr.ru/post/122408/
Получаю откомпилированный файл libandroid_sqlite.so
Далее у автора так все расплывчато написано, я не пойму как его использовать.
Кто в курсе темы, пожалуйста, помогите..
http://www.cyberforum.ru/free-pascal/thread1151203.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2013, 00:04
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Нужно сделать регистронезависимый поиск по таблице, содержащей русские буквы (Программирование Android):

Поиск в selecte - русские буквы
В IE есть встроенный поиск по певой букве в поле select. Но вот с русскими...

Поиск строки, содержащей наибольшее количество слов, начинающихся с гласной буквы
помогите с алгоритмом. а то я что то никак не въеду как делать

поиск на русские буквы выдает аброкадабру
Уважаемые web-дизайнеры, у меня такая проблема, я нашла как сделать форму, как...

Нужно, чтобы проверяло, если ли русские буквы в строке
В строке должны быть буквы английского алфавита, цифры и пробелы. И если буква...

Регистронезависимый поиск
Сделал поиск, написал элементарную регулярку. Регистр все равно учитывается. в...

3
Razor23Donetsk
4 / 4 / 1
Регистрация: 20.02.2015
Сообщений: 24
20.06.2016, 20:55 #2
Приведу пример решения на C#. Сразу скажу, что такой подход снижает производительность (http://dev.net.ua/blogs/def1983/page...rformance.aspx), но у меня с ним проблем пока не возникало, и работает всё именно так как и должно.
Для этого я использовал Пользовательскую Функцию (User-Defined Function) и создал вот такой класс :
C#
1
2
3
4
5
6
7
8
9
    [SQLiteFunction(Arguments = 1, FuncType = FunctionType.Scalar, Name = "ToUpper")]
    class UpperCaseConverter : SQLiteFunction
    {
        public override object Invoke(object[] args)
        {
            string initialString = (args[0] as string); //получаем исходную строку.
            return (initialString != null) ? initialString.ToUpper() : null; //Если строка != null, переводим в верхний регистр.
        }//Invoke
    }//UpperCaseConverter
Далее один раз за время работы программы надо зарегистрировать функцию (естественно до исп-ния ф-ции в коде) :
C#
1
2
3
4
5
6
7
            //Создаём подключение.
            using (SQLiteConnection connection = new SQLiteConnection(connectionString))
            {
                connection.Open(); //открываем подключение
                SQLiteFunction.RegisterFunction(typeof(UpperCaseConverter)); //регистрируем udf. 
                connection.Close(); //закрываем подключение
            }//using
Использование в коде:
C#
1
string query = "SELECT ToUpper(Column1) FROM Table;"
0
Alexvp
111 / 75 / 8
Регистрация: 03.08.2014
Сообщений: 380
20.06.2016, 23:39 #3
Мой вариант, возможно, слишком груб, но работает исправно. В таблице я делаю еще один столбец, куда заносится дубль столбца для поиска с кириллицей, но текст написан в uppercase. Поиск веду по этому столбцу, преобразовав запрос в uppercase. Вывод, естественно, из исходного столбца.
0
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,732
21.06.2016, 12:25 #4
Alexvp, собственно, это самое простое и распространённое решение. Правда, размер базы существенно увеличивается. И лучше lowercase, чтобы читать было приятнее. Давно прошли времена печатных машинок с большими буквами, а народ до сих пор лепит uppercase.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2016, 12:25
Привет! Вот еще темы с решениями:

Регистронезависимый поиск
привет всем, купил я скрипт oxyclassifieds 7.08 Столкнулся с такой...

Выполнить регистронезависимый поиск
как выполнять поиск в файле, чтобы не было зависимости от регистра введенных...

Заменить в исходном файле русские буквы ‘к’ на буквы ‘т’, буквы ‘т’ на буквы ‘к’, буквы ‘л’ на буквы ‘в’, буквы ‘в’ на
Задание: Заменить в исходном файле русские буквы ‘к’ на буквы ‘т’, буквы ‘т’...

JS, RegExp. Поиск знаков пунктуации (русские буквы принимаются за пунктуацию)
Нужно выражение, которое ищет хотя бы один знак пунктуации. Пробовал такое:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru