Усеченная таблица в SQLite3 на iPhone? - PullRequest
0 голосов
/ 22 декабря 2010

Я хочу полностью очистить все содержимое таблицы SQLite3 в своем приложении для iPhone.Мой опыт работы с MySQL сказал мне, что я должен использовать TRUNCATE.Но похоже, что SQLite3 не поддерживает TRUNCATE (по крайней мере, я получил ошибку при подготовке оператора, когда использую предложение TRUNCATE my_table_Name ).

Поэтому я перехожу к DELETE FROM.Два вопроса: 1) Будет ли DELETE FROM тщательно очищать мой стол?2) Я попробовал следующий код, и он работал.Но я сильно сомневался, что в нем есть ненужные или даже неправильные коды.Может кто-нибудь помочь мне взглянуть на это?

Заранее спасибо.

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);
}

1 Ответ

1 голос
/ 22 декабря 2010

Я думаю

if (code == SQLITE_ROW) {// Здесь ничего не делать ...}

этот код должен быть похож на

if (code ==SQLITE_DONE) {// Здесь ничего не делать ...}

Если вы хотите получить какое-либо сообщение, вы можете вернуть YES отсюда и NO из других (если вы измените тип возврата на BOOL из void). Это можетпомочь вам в показе сообщений.

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