2011-11-03 2 views
0

Très confus par cela ... ma table "DiscoveredCars" commence avec deux enregistrements dedans. La première fois que j'appelle cette méthode avec elle insère correctement et la dernière ligne affiche "3" pour le nombre d'enregistrements.Quel est le problème avec ma méthode d'insertion SQLITE3?

Pourtant la deuxième fois que je l'appelle, le SQL semble parfait mais pour une raison quelconque, il montre toujours "3" pour la taille et ne semble pas s'inscrire correctement? Des idées?

- (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"]); 

}

Répondre

2

Vous n'exécutez votre requête en appelant 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); 
} 
+0

Oups! Vous avez raison ... J'ai eu cela là-dedans et ensuite je l'ai édité par accident en essayant de résoudre le problème. J'ai mis à jour le code dans mon message. Cependant, j'ai toujours le problème que j'ai décrit. Je sais vérifier la taille de DiscoveredCars au début et à la fin de la méthode. Au début, il dit 2, et la fin, il dit 3. Puis, quand j'appelle une deuxième fois, il dit 2 et 3 à nouveau ?? La base de données est-elle recréée à chaque fois ou quelque chose? – sayguh

+0

Oups à nouveau ... J'ai trouvé l'endroit où je le ré-initialisais. Merci Joe – sayguh

Questions connexes