Не могу удалить запись с SQLite iPhone - PullRequest
0 голосов
/ 07 апреля 2011

Когда я запускаю этот код в симуляторе iPhone, я не могу удалить запись из БД. Если я запускаю этот запрос в браузере БД SQLite, он работает хорошо. Вот мой код

SQLiteDB *sqliteConnect=[[SQLiteDB alloc] init];
sqlite3 *database;

if(sqlite3_open([sqliteConnect.databasePath UTF8String], &database)==SQLITE_OK)
{   
    sqlite3_stmt *compiledstatement;

    const char *sqlstmt="delete from searchHistory where id = (select min(id) from searchHistory) ";

    if(sqlite3_prepare_v2(database, sqlstmt, -1, &compiledstatement, NULL)==SQLITE_OK)
    {
        sqlite3_step(compiledstatement);

        if(SQLITE_DONE != sqlite3_step(compiledstatement))

            NSAssert1(0,@"Error while creating delete statement => %s",sqlite3_errmsg(database) );
    }
    NSLog(@"delete DONE");
    sqlite3_finalize(compiledstatement);
}
sqlite3_close(database);

Когда я запускаю с помощью отладчика, я получаю следующую ошибку =>

2011-04-08 08:42:34.049 MyApp[1838:20b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Error while creating delete statement => not an error'

SQLiteDB - это мой класс, который содержит логику для методов init & checkAndCopyDB. Моя БД копируется в каталог документов. Другие операции с БД работают нормально. Пожалуйста, помогите мне. Спасибо

Ответы [ 2 ]

6 голосов
/ 07 апреля 2011

вы дважды вызываете sqlite3_step?

Попробуйте это:

{
    int result = sqlite3_step(compiledstatement);

    if(SQLITE_DONE != result)

        NSAssert1(0,@"Error while creating delete statement => %s",sqlite3_errmsg(database) );
 }
1 голос
/ 07 апреля 2011

Возможно, попробуйте:

if(SQLITE_DONE != sqlite3_step(compiledstatement))
    NSAssert1(0,@"Error while creating delete statement => %s",sqlite3_errmsg(database));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...