|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
поиск в SQLite используя LIKE
Здравствуйте!
В проекте Delphi использую SQLite, подключился, делаю выборку, перевожу строки из UTF8, все получается, но с поиском не выходит. Поиск ведется по полю, где строки вида: 100230какой-тотоварname. Запрос такого вида: Код:
str := Edit1.Text; str := StringReplace(str, ' ', '', [rfReplaceAll]); str := AnsiLowerCase(str); sQuery := 'SELECT name, id, type_id FROM t_cat WHERE id in (SELECT cat_id FROM t_names WHERE search LIKE ''%'+str+'%'')'; sltb := sldb.GetTable(sQuery); В интернете нашел много инфо. Советуют кодировать в UTF8 при запросе в базу. Примерно так: Код:
sldb.GetTable := AnsiString(UTF8Decode(sldb.GetTable('SELECT name, id, type_id FROM t_cat WHERE id in (SELECT cat_id FROM t_names WHERE search LIKE ''%'+str+'%'')'); Пробывал кодировать строку перед запросом в базу Код:
str := UTF8Decode(str); Понимаю, что для многих это легко и просто, но я недавно в Delphi и с этим не выходит разобраться. Буду благодарен совету или ссылке, как выполнить запрос на русском. |