Невозможно обновить столбец базы данных - Цель C - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь обновить столбец в таблице с помощью этой функции:

-(void)updateID:(NSString*)ID{
    NSString *queryInsertAndUpdate =
    [NSString stringWithFormat:
     @"UPDATE mytable set ID = '%@' limit 1",ID];

    const char* query=[queryInsertAndUpdate UTF8String];
    sqlite3_stmt *stmt = nil;

    sqlite3_exec(_database, "BEGIN EXCLUSIVE TRANSACTION", 0, 0, 0);

    if (sqlite3_prepare_v2(_database, query, -1, &stmt, NULL) == SQLITE_OK) {
        if(sqlite3_step(stmt) == SQLITE_DONE) {
            NSLog(@"Query Executed");
        } else {
            NSLog(@"Query NOT Executed: %s", sqlite3_errmsg(_database));
        }
        sqlite3_finalize(stmt);

    }else{
        NSLog(@"Statement NOT Prepared: %s", sqlite3_errmsg(_database));
    }
}

Когда я запускаю эту функцию, все работает нормально, и столбец обновляется.Я знаю это, потому что я звоню в базу данных о конкретной таблице и проверяю результаты.Дело в том, что когда я вызываю ту же функцию, которая читает записи таблицы из другого класса, я получаю разные результаты.

В частности, когда я вызываю:

AppDelegate* appDelegate = (AppDelegate*)[UIApplication sharedApplication].delegate;
[appDelegate initViewController];

внутри initViewController Я вызываю ту же функцию, которая читает таблицу, и получаю запись в столбце перед обновлением.

Почему это происходит?Я могу предоставить больше кода, если это необходимо.

1 Ответ

0 голосов
/ 03 декабря 2018

Если у вас «НАЧАТЬ ИСКЛЮЧИТЕЛЬНУЮ СДЕЛКУ», вам также необходимо совершить СОВЕРШЕННУЮ СДЕЛКУ

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