SQL удаление не работает - PullRequest
0 голосов
/ 08 апреля 2011

Помогите пожалуйста :-) Следующий код должен удалить запись.Кажется, он выполняется нормально, сообщение об ошибке отсутствует, и NSLog показывает сообщение «Запись удалена»Однако запись не удаляется.Я использовал Терминал для проверки, и действительно удаленная запись все еще там.Загадочная часть заключается в том, что у меня есть очень похожий код для добавления и подсчета записей, и все они, кажется, работают ... Я не эксперт по SQL, поэтому я надеюсь, что эксперт в этой группе сможет увидеть ошибку.

Спасибо

 (void) deleteRecord
 {
    const char *dbpath = [databasePath UTF8String];
    sqlite3_stmt    *statement;

    if (sqlite3_open(dbpath, &wfDataBase) == SQLITE_OK)
    {
        NSLog(@"About to Delete Record %d",currentID);
        NSString *querySQL = [NSString stringWithFormat: @"DELETE from wfDataBase WHERE ID = %d", currentID];
        const char *query_stmt = [querySQL UTF8String];

        if (sqlite3_prepare_v2(wfDataBase, query_stmt, -1, &statement, NULL) == SQLITE_OK)
            l_status.text = @"Record Deleted";            
        else 
            l_status.text = @"Can't Delete";

        sqlite3_finalize(statement);
        sqlite3_close(wfDataBase);
    }    
}

1 Ответ

0 голосов
/ 08 апреля 2011

Вы уверены, что оценили (sqlite3_step(statement )) скомпилированный оператор (sqlite3_prepare_v2(wfDataBase, query_stmt, -1, &statement, NULL)) до уничтожения it (sqlite3_finalize(statement))?

Примечание: я не эксперт по SQLite (на самом деле я ничего не знаю о SQLite), но я думаю, что это является причиной проблемы.

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