Main Contents

[Objective-c] Astuce SQlite

mai 1, 2010

Donc si comme moi vous utilisez SQlite pour stocker des informations, vous avez peut être eu un problème lors de certaines requêtes sql contenant like.
Voilà la solution que j’ai trouvé.

Donc prenons l’exemple de cette requête :
SELECT * FROM pays WHERE nom LIKE ‘%fr%’

Dans une application iPhone nous utiliserions ceci :
SELECT * FROM pays WHERE nom LIKE ‘%?%’

Mais le problème est que ça ne fonctionne pas. Il faut préparer la requête de cette manière:
SELECT * FROM pays WHERE nom LIKE ?

Ou ? sera remplacé par la chaine que l’on souhaite, c’est à dire :

1
NSString *maRecherche = [NSString stringWithFormat:@"%%%@%%", paysRecherche];

Il faut donc doublé les % pour en avoir un en retour. Il nous reste plus qu’a remplacer maRecherche dans la requête:

1
sqlite3_bind_text(findTimeZone_statement, 1, [maRecherche UTF8String], -1, SQLITE_STATIC);

Et voilà la requête est prête à être exécutée.

Catégorie(s): Développement, Iphone, Objective-C, Tutorial | Comments (1)

Un commentaire

  1. ArtFaks (1 comments) mai 2, 2010 @ 0 h 28 min

    Merci pour le tips, je mettais confronter au problème il y a quelques semaines mais je pensais que c’était mon code qui était foireux vu que je débute avec XCode !!!

    PS: as-tu reçu mon mail ?

Leave a comment