iphone: удалить строку из базы данных sqlite - PullRequest
3 голосов
/ 12 мая 2011

Я пробовал много способов добиться этого, но не смог удалить строку из sqlite, пожалуйста, помогите мне исправить следующий фрагмент кода

dbPath = [self applicationDocumentsDirectory];
NSLog(@"%@", dbPath);
dbPath=[dbPath stringByAppendingPathComponent:@"database"];
dbPath=[dbPath stringByAppendingPathComponent:@"OFFENDERSDB.sqlite"];

NSLog(@"database path --> %@", dbPath);

if (sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK) {
    const char *sqlStatement = ("DELETE * from OFFENDERS_LIST where ID=%d ",2);

    sqlite3_stmt *compiledStatement;

    if (sqlite3_prepare(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {

        NSLog(@"offender deleted");
    }
    sqlite3_finalize(compiledStatement);
}

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

1 Ответ

5 голосов
/ 12 мая 2011

вы пытались использовать:

sqlite3_exec(database, sqlStatement...

с вашим оператором DELETE?

ТАКЖЕ .... это УДАЛИТЬ ИЗ .... не УДАЛИТЬ * ИЗ ....

Выделил следующий код из другого места в Интернете для более полного примера ...

sqlite3 *db;
int rc;

rc = sqlite3_open( "C:\\MyDatabase", &db );

if ( rc )
{
        sqlite3_close(db);
}
else //Database connection opened successfuly
{
        char *zErrMsg = 0;

        rc = sqlite3_exec( db, "DELETE FROM yourTable", NULL, NULL, &zErrMsg );

        if( rc != SQLITE_OK )
        {
                sqlite3_free( zErrMsg );
        }

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