2009-12-10 4 views
0

Dans mon Iphone App J'ai créé cette requête:variables/paramètres dans la requête SQLite pour Iphone App

 

"SELECT * FROM visuel where id_visuel = 1" 
 

Et donc j'ai cette fonction qui fonctionne très bien:

 

- (void)getVisuel { 

    visuelArray = [[NSMutableArray alloc] init]; 

    sqlite3 *database; 

    if(sqlite3_open([self.databasePath UTF8String], &database) == SQLITE_OK) { 
     sqlite3_reset(getVisuelStatement); 

     while(sqlite3_step(getVisuelParcStatement) == SQLITE_ROW) { 
      NSString *aTitle = [NSString stringWithUTF8String:(char *)sqlite3_column_text(getVisuelStatement , 2)]; 
      NSString *aLpath = [NSString stringWithUTF8String:(char *)sqlite3_column_text(getVisuelStatement , 3)]; 

      Visuel *aVisuel = [[Visuel alloc] initWithName:aTitle lpath:aLpath]; 

      [visuelArray addObject:aVisuel]; 
     } 
    } 
    sqlite3_close(database); 

} 
 

Ce que je veux est de changer la requête comme ceci: "SELECT * FROM visuel où id_visuel =?" Je ne veux pas avoir un identifiant statique, mais je ne sais pas comment le faire.

Merci,

Répondre

2

Eh bien, tout d'abord changer votre requête à votre requête paramétrées comme vous avez là. Puis, juste avant que vous appelez sqlite3_step lier le droit au paramètre id:

sqlite3_reset(getVisuelStatement); 

//Add these two lines 
int visuelId = 1; //Put whatever id you want in here. 
sqlite3_bind_int(getVisuelParcStatement, 1, visuelId); 

while(sqlite3_step(getVisuelParcStatement) == SQLITE_ROW) { 
+0

Merci qui aident. Mais maintenant, si je fais ce que vous dites, je vais avoir raison: pour visuelId = 1 faire cela ... visualId = 2 faire cela ............ J'ai créé un UITableView et je veux par exemple mettre le numéro de la ligne pour le visuelId. Hos pour faire ça? – ludo