Здравствуйте!
В проекте 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+'%'')');
У меня пишет ошибка несочетаемые типы.
Пробывал кодировать строку перед запросом в базу
ничего не выходит(проверял в Tmemo выводится пустая строка).
Понимаю, что для многих это легко и просто, но я недавно в Delphi и с этим не выходит разобраться.
Буду благодарен совету или ссылке, как выполнить запрос на русском.