Как сохранить привязку SQLite в NSString - PullRequest
0 голосов
/ 17 мая 2011

У меня есть следующий оператор связывания для привязки столбца SQLite.Я хочу сохранить это значение в NSString с именем journeyName.Для этого я написал следующее утверждение:

NSString * journeyName = sqlite3_bind_text( compiledStatement, 1, 
                                           [Gjourney UTF8String], -1, 
                                           SQLITE_TRANSIENT );

Это дает мне предупреждение, что

инициализация делает указатель из целого числа без преобразования

и мое приложение вылетает.

Ответы [ 4 ]

0 голосов
/ 17 мая 2011

sqlite3_bind_text привязывает текстовое значение к параметру SQL до выполнения оператора SQL .Это означает, что вы уже обладаете значением NSString*, которое вы передаете.Возвращаемое значение sqlite3_bind_text - это int, а не NSString*.

. Если вы хотите получить значение, возвращаемое оператору SQL после его выполнения, вам нужно посмотреть на sqlite3_column_text .

Например ...

if (sqlite3_step(stmt) == SQLITE_ROW)
{
    char *cstr = (char*)sqlite3_column_text(stmt, 0); // 0 = the param index
    NSString *str = [NSString stringWithUTF8String:cstr];
}
0 голосов
/ 17 мая 2011

Замените ваш код следующим образом:

NSString *journeyName = sqlite3_bind_text( compiledStatement, 1, [Gjourney UTF8String], -1, SQLITE_TRANSIENT);

Это должно работать.

0 голосов
/ 17 мая 2011

Попробуйте это.

    // Read the data from the result row
    NSString * journeyName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)];
    NSLog(@"journeyName - %@",journeyName);

Для справки - Пример кода

0 голосов
/ 17 мая 2011

Полагаю, вы должны были написать

NSString* journeyName = sqlite3_bind_text( compiledStatement, 1, [Gjourney UTF8String], -1, SQLITE_TRANSIENT);

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