Как удалить данные таблицы из базы данных SQLite в iPhone - PullRequest
0 голосов
/ 17 февраля 2012

Я работаю над базой данных SQLite.Я вставляю данные в базу данных, это нормально.Но я хочу удалить данные из базы данных, они не работают, я думаю, что делаю что-то не так, где мой код, пожалуйста, помогите мне:

-(IBAction)deleteData {

NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
NSString *databasePath=[documentsDir stringByAppendingPathComponent:@"paddleEight.sqlite"];
NSLog(@"The Database Path is---> %@", databasePath);

sqlite3_stmt *compiledStatement;
sqlite3 *db;
NSString *sqlStatement = @"DELETE  from GalleryTabel;";


if (sqlite3_open([databasePath UTF8String], &db) == SQLITE_OK) {


    if (sqlite3_prepare(db, [sqlStatement UTF8String], -1, &compiledStatement, NULL) == SQLITE_OK) {

        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"record" message:@"record Deleted" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];   
        [alert show];
        [alert release];
        alert=nil;
    }
    sqlite3_finalize(compiledStatement);
}
}

1 Ответ

5 голосов
/ 17 февраля 2012

Попробуйте войти NSLog(@"Error=%s",sqlite3_errmsg(&db), посмотрите, есть ли ошибки.Проверьте, входит ли он внутрь sqlite3_open statement.

И я никогда не использовал точку с запятой для завершения оператора delete, мои знания в sqlite очень ограничены.Но я всегда использовал NSString *sqlStatement = @"DELETE from GalleryTabel"; Обратите внимание, точка с запятой удаляется.

И попробуйте использовать exec вместо prepare,step,finalize метода.

Например:

NSString*deleteSQL=[NSString stringWithFormat:@"delete from GalleryTabel"];
const char*deleteStmt=[deleteScoreSQL UTF8String];
 char*errMsg=nil;

        if(sqlite3_exec(db, deleteScoreStmt, NULL, NULL, &errMsg)==SQLITE_OK)
        {
           NSLog(@"Deleted table");
        }

Надеюсь, это поможет.

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