2010-12-22 12 views
0

Ich möchte alle Inhalte in einer SQLite3-Tabelle in meiner iPhone App vollständig säubern. Meine MySQL-Erfahrung sagte mir, dass ich TRUNCATE verwenden sollte. Aber es scheint, dass SQLite3 TRUNCATE nicht unterstützt (zumindest habe ich einen Fehler bei der Vorbereitung der Anweisung, wenn ich den Satz TRUNCATE my_table_Name).Tabelle in SQLite3 auf dem iPhone abschneiden?

Also wende ich mich an LÖSCHEN VON. Zwei Fragen: 1) Wird DELETE FROM meinen Tisch gründlich reinigen? 2) Ich habe den folgenden Code ausprobiert und es hat funktioniert. Aber ich habe sehr bezweifelt, dass es unnötige oder sogar falsche Codes gibt. Kann mir jemand helfen, einen Blick darauf zu werfen?

Vielen Dank im Voraus.

Di

-(void)deleteAllUser { 
    NSString *ns_sql = [NSString stringWithFormat:@"DELETE FROM %@", [Config USER_TABLE_NAME]]; 
    const char *sql = [ns_sql cStringUsingEncoding:NSUTF8StringEncoding]; 
    sqlite3_stmt *statement = nil; 

    sqlite3* db = ...; //get the database instance 

    if(sqlite3_prepare_v2(db, sql, -1, &statement, nil) != SQLITE_OK) { 
     return; 
    } 

    //Without this line, table is not modified 
    int code = sqlite3_step(statement); 

    if (code == SQLITE_ROW) { 
     //Do nothing here... 
    } 

    sqlite3_finalize(statement); 
} 

Antwort

1

Ich denke

if (Code == SQLITE_ROW) {// hier nichts tun ... }

dieser Code sollte

wie

sein if (code == SQLITE_DONE) { // Nichts tun hier ... }

Wenn Sie eine Nachricht erhalten möchten, können Sie von hier aus JA und von sonst NO zurückgeben (wenn Sie den Rückgabetyp von void in BOOL ändern). Dies kann Ihnen beim Anzeigen von Nachrichten helfen.

+0

Danke Ishu, ich werde es versuchen. –