2010-10-14 11 views
0
Exécuter

HI tous,requêtes multiples

i est folloeing ce tutoriel Sample code il travaillait grand ..

mon doubht est, pour exécuter la requête unique ils ont exécuté dans cette méthode

"+ (void) getInitialDataToDisplay:(NSString *)dbPath {" 

comme "select coffeeID, coffeeName from coffee""

c'est très bien. mais pour ma prochaine vue si je veux exécuter une nouvelle requête comme "sélectionnez * du café où abc = 123".

où devrais-je écrire cette requête ?? je hv pour créer une nouvelle méthode et hv pour appeler cette nouvelle méthode ou quoi? comment puis-je exécuter une autre requête? plz suggérer.

Répondre

1

1) Si vous allez utiliser sqlite. Je vous suggère d'apprendre comment ajouter des données de base à votre application.

2) Pour répondre à votre question. Vous pouvez ajouter une méthode à la classe de café pour récupérer les données dont vous avez besoin. Il pourrait être une méthode de classe mis en œuvre tout comme:

+ (void) getData:(NSString *)dbPath { 
    SQLAppDelegate *appDelegate = (SQLAppDelegate *)[[UIApplication sharedApplication] delegate]; 

    if (sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK) { 

    // <---Modify the sqlite statement below 
    const char *sql = "select coffeeID, coffeeName from coffee"; 
    sqlite3_stmt *selectstmt; 
    if(sqlite3_prepare_v2(database, sql, -1, &selectstmt, NULL) == SQLITE_OK) { 

    while(sqlite3_step(selectstmt) == SQLITE_ROW) { 

    NSInteger primaryKey = sqlite3_column_int(selectstmt, 0); 
    Coffee *coffeeObj = [[Coffee alloc] initWithPrimaryKey:primaryKey]; 
    coffeeObj.coffeeName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt, 1)]; // <-- create objects in coffeeObj that you want to do something with. 

    coffeeObj.isDirty = NO; 

    [appDelegate.coffeeArray addObject:coffeeObj]; 
    [coffeeObj release]; 
    } 
    } 
    } 
    else 
    sqlite3_close(database); //Even though the open call failed, close the database connection to release all the memory. 
    } 

Assurez-vous que vous ajoutez la méthode correspondant au fichier .h ainsi.

+0

Merci Jordan, juste une chose que j'ai besoin de demander .. j'ai passé la requête en elle, mais comment et où dois-je appeler cette méthode "+ (void) getData: (NSString *) dbPath" ???? – iscavengers

+0

ohk l'a fait fonctionner, j'ai appelé cette méthode dans le lancement d'applicationdidfinish. mais une chose, je reçois des données de retour sous "" dans ce format. quand je ferme l'application et la relance, elle montre les vraies données, tu sais pourquoi cela se passe? merci une tonne monsieur – iscavengers

+0

Le café est une classe. Plus précisément, il s'agit d'un objet de modèle de données. C'est une structure qui contient vos données. Vous référencez NSStrings et autres en utilisant la notation par points. Par exemple, dans le code ci-dessus, le nom du café est stocké dans coffeeObj.coffeeName. – Jordan

Questions connexes