2009-03-28 25 views
10

このコードブロックで何が間違っているのかを誰かに教えてもらえますか?私はsqlite3_prepare_v2ステートメントを通過することはありませんし、デバッガは言う:iphone sqliteの問題: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); 

答えて

26

「「メモリ不足に」私は、データベースを開いたことはありません...私は問題thatsのだと思います。

+0

ありがとうございます!私もこの問題を抱えていた: – hatfinch

+3

振り返って明らかだが、テリブルエラーメッセージ! –

+0

私はいつもSQL構文エラーで "メモリ不足"に気付きました。これはsqlite3_errmsgのバグですか? –

11

これはバグではありません。問題はデータベースを開けないことです。例:

if (sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK) 
+0

これを行う必要があることを明確にするには sqliteStatusCode = sqlite3_open([databasePath UTF8String]、&tracksDB); – loretoparisi

+0

ありがとうございました! – swiftBoy

0

また、この問題に直面していて、sqlite文のデータベースをリセットして解決しました。