SQLite3 - подпрограмма библиотеки вызвана не по порядку - PullRequest
8 голосов
/ 23 августа 2010

При выполнении следующего оператора prepare для запроса db-selecct SQLite3 я получаю SQLLite Error 21 " Библиотечная подпрограмма, вызванная из последовательности ":

sqlite3             *lDb;
sqlite3_stmt           *lStmt;
NSNumberFormatter     *lNbrFmt = [[[NSNumberFormatter alloc] init] autorelease];

// Define SQL statement 
NSString *lSql = @"SELECT section, language, title, description"
@"                        selector-x-pos, selector-y-pos, gps-x-pos, gps-y-pos"
@"                   FROM sections"
@"               ORDER BY section ASC";

lSqlResult = sqlite3_prepare_v2(lDb, [lSql UTF8String], -1, &lStmt, NULL);
NSLog(@"%@", [NSString stringWithUTF8String:sqlite3_errmsg(lDb)]);

Что я делаюнеправильно?

1 Ответ

10 голосов
/ 23 августа 2010

Уопон, дальнейшее расследование обнаружил мою ошибку.Я должен был сначала открыть базу данных перед выполнением оператора prep.

Код должен выглядеть следующим образом:

sqlite3             *lDb;
sqlite3_stmt           *lStmt;
NSNumberFormatter     *lNbrFmt = [[[NSNumberFormatter alloc] init] autorelease];

// Define SQL statement 
NSString *lSql = @"SELECT section, language, title, description"
@"                        selector-x-pos, selector-y-pos, gps-x-pos, gps-y-pos"
@"                   FROM sections"
@"               ORDER BY section ASC";

if(sqlite3_open([[fileMethods databasePath] UTF8String], &lDb) == SQLITE_OK) {
    lSqlResult = sqlite3_prepare_v2(lDb, [lSql UTF8String], -1, &lStmt, NULL);
    NSLog(@"%@", [NSString stringWithUTF8String:sqlite3_errmsg(lDb)]);
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...