Что не так с моим методом вставки SQLITE3? - PullRequest
0 голосов
/ 03 ноября 2011

Очень смущен этим ... моя таблица "DiscoveredCars" начинается с двух записей в ней. Первый раз, когда я вызываю этот метод, он вставляется правильно, а в последней строке отображается число «3» для количества записей.

И все же во второй раз, когда я это называю, SQL выглядит идеально, но по какой-то причине он все еще показывает «3» для размера и, кажется, не вставляет правильно? Есть идеи?

- (void)writeToDiscoveredCars: (Car *)car {

NSString *tempSQL = [NSString stringWithFormat:@"INSERT INTO DiscoveredCars (car_ID) VALUES (%i)", car.ID];

NSLog(@"size of discoveredis %i", [self numberRecordsForTable:@"DiscoveredRecipes"]);
NSLog(@"SQL insert is %@", tempSQL);

const char *sql = [tempSQL UTF8String];   
sqlite3_stmt *statement;

int sqlResult = sqlite3_prepare_v2(myDatabase, sql, -1, &statement, NULL);

if (sqlResult == SQLITE_OK) {

    sqlResult = sqlite3_step(statement);

    if(sqlResult == SQLITE_DONE)
    {

    }

    sqlite3_finalize(statement);
}

else
{
    NSLog(@"1. problem with database");
    NSLog(@"%s", sqlite3_errmsg(myDatabase));
}

NSLog(@"size of discoveredis %i", [self numberRecordsForTable:@"DiscoveredCars"]);

}

1 Ответ

2 голосов
/ 03 ноября 2011

Вы никогда не выполняете свой запрос, вызывая sqlite3_step.

int sqlResult = sqlite3_prepare_v2(myDatabase, sql, -1, &statement, NULL);

if (sqlResult == SQLITE_OK) {
    sqlResult = sqlite3_step(statement); //Execute!
    //check the result for completion
    if(sqlResult == SQLITE_DONE)
    {
    }

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