Sqlite3_bind для оператора LIKE (Objective-C) - PullRequest
0 голосов
/ 22 февраля 2010

Я пытаюсь привязать значение NSString к моему SQL-запросу, но оно не работает, и я не знаю, что я делаю неправильно. Вот мой запрос:


Select * from fiche where fichetype = 'EVENT' and sdate like '?%' ORDER BY cdate DESC

И я использую эту часть кода, чтобы связать значение:


sqlite3_bind_text(getEventStatement, 1, [value UTF8String], -1, SQLITE_TRANSIENT);

Этот запрос работает нормально в моей базе данных, но не в Xcode. Я тоже попробую что-то еще подобное:


Select * from fiche where fichetype = 'EVENT' and sdate GLOB '?*' ORDER BY cdate DESC

Этот работает в XCode, но все значения отображаются, символ? * Не работает.

Кто-нибудь? Спасибо,

1 Ответ

0 голосов
/ 23 февраля 2010

Для тех, у кого такая же проблема с оператором LIKE, вот решение, которое работает для меня. сначала я изменяю свой запрос следующим образом:


Select * from fiche where fichetype = 'EVENT' and sdate like ?001 ORDER BY cdate DESC

Не ставить кавычки в параметре tokens? 001, затем создайте новую строку, которая поместит% в то, что вы ищете:


NSString *theString = [NSString stringWithFormat:@"%@%%", myValue];

Наконец, нужно просто связать строку с подготовленным оператором следующим образом:


sqlite3_bind_text(getEventStatement, 1, [theString UTF8String], -1, SQLITE_STATIC);

веселись,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...