Как определить свою функцию для SQLite в Lazaruse

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Ответить
Putnick
новенький
Сообщения: 62
Зарегистрирован: 18.03.2009 12:02:56

Как определить свою функцию для SQLite в Lazaruse

Сообщение Putnick »

Добрый день.
Суть проблемы:
Делаю запрос вида

Код: Выделить всё

SELECT * FROM Table WHERE LOWER(field1)=<введенная мною строка, преобразованная к нижнему регистру>

если моя строка на английском - всё отлично: выберется и "Value" и "VAlUE" и т.д.
а вот, если строка на русском - извините: "значение" - да, а вот "ЗНАЧЕНИЕ" - уже нет.
Как я понял, sqlite LOWER не работает с UTF8, и нужно её переопределять.

Собственно вопрос, как это сделать? Особенно с учётом того, что в программе уже есть куча Query, Transaction, Connection.
Заранее благодарю за советы.
Padre_Mortius
энтузиаст
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

Putnick, а в какой кодировке у вас хранятся данные в базе?
Putnick
новенький
Сообщения: 62
Зарегистрирован: 18.03.2009 12:02:56

Сообщение Putnick »

Padre_Mortius писал(а):Putnick, а в какой кодировке у вас хранятся данные в базе?
UTF-8.
Сейчас использую "костыль": считываю все данные без без условий, а потом в цикле выбираю нужные мне. Поскольку пока БД мелкая - оно, вроде, и ничего. С ужасом думаю о будущем :D .
Ответить