2014-01-16 165 views
0

我知道這是一個非常常見的問題,我嘗試了我在這裏找到的所有東西。但問題仍然存在。從sqlite數據庫中的表中刪除所有記錄

現在的問題是我試圖刪除3個表中的所有記錄與下面的代碼,但他們沒有被刪除

const char *dbpath = [dbPathString UTF8String]; 
sqlite3 *sqliteDB; 

if (sqlite3_open(dbpath, &sqliteDB) == SQLITE_OK) 
{ 
    //Delete all records from attempts 
    sqlite3_stmt *statement; 

    NSString *deleteSQL = [NSString stringWithFormat: @"DELETE FROM table1"]; 

    const char *delete_stmt = [deleteSQL UTF8String]; 
    sqlite3_prepare_v2(sqliteDB, delete_stmt, -1, &statement, NULL); 

    sqlite3_finalize(statement); 
    sqlite3_close(sqliteDB); 
} 
if (sqlite3_open(dbpath, &sqliteDB) == SQLITE_OK) 
{ 
    //Delete all records from attempts 
    sqlite3_stmt *statement; 

    NSString *deleteSQL = [NSString stringWithFormat: @"DELETE FROM table2"]; 

    const char *delete_stmt = [deleteSQL UTF8String]; 
    sqlite3_prepare_v2(sqliteDB, delete_stmt, -1, &statement, NULL); 

    sqlite3_finalize(statement); 
    sqlite3_close(sqliteDB); 
} 
if (sqlite3_open(dbpath, &sqliteDB) == SQLITE_OK) 
{ 
    //Delete all records from attempts 
    sqlite3_stmt *statement; 

    NSString *deleteSQL = [NSString stringWithFormat: @"DELETE FROM table"]; 

    const char *delete_stmt = [deleteSQL UTF8String]; 
    sqlite3_prepare_v2(sqliteDB, delete_stmt, -1, &statement, NULL); 

    sqlite3_finalize(statement); 
    sqlite3_close(sqliteDB); 
} 

我試圖與如果條件一樣

if (sqlite3_prepare_v2(sqliteDB, delete_stmt, -1, &statement, NULL) == SQLITE_OK) { 
    NSLog("All records deleted"); 
} 

這如果條件得到執行,我有控制檯日誌中的聲明。 我使用的是Xcode 5.0。 請幫幫我。 Thanx提前

+0

你怎麼知道數據沒有被刪除?你是從Documents目錄下的sqlite文件中刪除數據嗎? – SRI

+0

您是否在刪除後檢查了xcode中的數據? –

回答

0

sqlite3_prepare_v2只是準備聲明。 要實際執行它,您還必須致電sqlite3_step

+0

我真的很愚蠢。我怎麼能忘記這一點:P。 –