Название: QSQLITE, QSqlTableModel, setFilter(). select bla-bla LIKE Отправлено: smartchecker от Декабрь 08, 2009, 17:59 Как сделать setFilter'у объяснить что хочу запрос типа select LIKE, а не select =
Название: Re: QSQLITE, QSqlTableModel, setFilter(). select bla-bla LIKE Отправлено: MoPDoBoPoT от Декабрь 08, 2009, 21:23 Непонятно, в чем собственно вопрос? Пишите в setFilter() условие LIKE, и все :)
Код
Название: Re: QSQLITE, QSqlTableModel, setFilter(). select bla-bla LIKE Отправлено: smartchecker от Декабрь 09, 2009, 01:01 А как чтобы регистронезависимо?
Название: Re: QSQLITE, QSqlTableModel, setFilter(). select bla-bla LIKE Отправлено: Пантер от Декабрь 09, 2009, 07:15 Код
Название: Re: QSQLITE, QSqlTableModel, setFilter(). select bla-bla LIKE Отправлено: smartchecker от Декабрь 09, 2009, 12:07 Код
Пытался скормить sqlbrowser'у из demos'ов - возвращает пустую таблицу. Название: Re: QSQLITE, QSqlTableModel, setFilter(). select bla-bla LIKE Отправлено: Пантер от Декабрь 09, 2009, 12:46 Код Опечатался. Вот из документации SQLite: Цитировать upper(X) Return a copy of input string X converted to all upper-case letters. The implementation of this function uses the C library routine toupper() which means it may not work correctly on non-ASCII UTF-8 strings. Название: Re: QSQLITE, QSqlTableModel, setFilter(). select bla-bla LIKE Отправлено: smartchecker от Декабрь 09, 2009, 13:17 Код Опечатался. Вот из документации SQLite: Цитировать upper(X) Return a copy of input string X converted to all upper-case letters. The implementation of this function uses the C library routine toupper() which means it may not work correctly on non-ASCII UTF-8 strings. В таблице строки в utf-8 в sqlbrowser'е пишу Код результат - пустая таблица Название: Re: QSQLITE, QSqlTableModel, setFilter(). select bla-bla LIKE Отправлено: MoPDoBoPoT от Декабрь 09, 2009, 15:35 1. Запрос действительно возвращает путстую таблицу.
2. Дело в различных кодировках программы и СУБД. Название: Re: QSQLITE, QSqlTableModel, setFilter(). select bla-bla LIKE Отправлено: smartchecker от Декабрь 09, 2009, 16:27 1. Запрос действительно возвращает путстую таблицу. Тогда почему, если upper() не использовать, и передавать строку с учётом регистра, всё работает как надо?2. Дело в различных кодировках программы и СУБД. Название: Re: QSQLITE, QSqlTableModel, setFilter(). select bla-bla LIKE Отправлено: MoPDoBoPoT от Декабрь 09, 2009, 17:13 Я имелл ввиду ИЛИ (или 1 пункт, или 2). Проверил сам - запрос возвратит пустую строку, в случае отсутствия шаблона '%фыв%', т.е. регистр учитывается.
Почему? - потому что функция upper() не работате с русскоязычными символами (можешь сам убедится). Это, наверное, связано с "...not work correctly on non-ASCII UTF-8 strings." |