2014-01-16 3 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

Откуда Вы знаете, что данные не удаляются? Вы удаляете данные из файла sqlite, который находится в папке «Документы»? – SRI

+0

Вы перешлите проверку на чтение данных из xcode после удаления ...? –

ответ

0

sqlite3_prepare_v2 только что готовит заявление. Чтобы выполнить его, вы также должны позвонить sqlite3_step.

+0

Я действительно тупой. как я мог это забыть: P. –

0

Дорогой друг, это немного сложным кодирования пытаются использовать внешний класс для простого кодирования

эта ссылка поможет вам

How to insert update delete in database operation and also save database in document directory

для удаления записи, которую вы можете использовать

NSString *strDelete = [Database executeScalarQuery:@"DELETE FROM table1"]; 

Happy Coding !!!

+0

Спасибо, мой друг. Вы сделали действительно хорошую работу. Но на данный момент мне просто нужен 1 строковый код. Спасибо друг. –

Смежные вопросы