проблема с iphone sqlite: «недостаточно памяти» на sqlite3_prepare_v2 - PullRequest
10 голосов
/ 28 марта 2009

Мне интересно, может ли кто-нибудь помочь мне понять, что не так с этим блоком кода. Я никогда не пройду мимо оператора sqlite3_prepare_v2, и отладчик скажет:

'NSInternalInconsistencyException', причина: 'Ошибка при создании оператора add. «недостаточно памяти»

    static sqlite3 *database = nil;
sqlite3_stmt *addStmt = nil;

if(addStmt == nil) {
    NSLog(@"About to add start time...\n");
    const char *sql = "INSERT INTO games_played(start) VALUES(?)";     
    if(sqlite3_prepare_v2(database, sql, -1, &addStmt, NULL) != SQLITE_OK)
        NSAssert1(0, @"Error while creating add statement. '%s'", sqlite3_errmsg(database));
    NSLog(@"add statement created successfully!\n");
}
NSLog(@"About to bind start time...\n");
sqlite3_bind_text(addStmt, 1, @"start time", -1, SQLITE_TRANSIENT);

Ответы [ 3 ]

26 голосов
/ 28 марта 2009

Я никогда не открывал базу данных ... Я думаю в этом проблема.

11 голосов
/ 10 ноября 2011

Это не ошибка, проблема в том, что вы никогда не открываете базу данных. Например:

if (sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK)
0 голосов
/ 21 июля 2012

Я также столкнулся с этой проблемой и решил ее, сбросив базу данных для оператора sqlite.

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