2010-04-15 6 views
2

J'ai des problèmes en cours d'exécution d'une instruction LIKE dynamique dans mon projet: cette requête fonctionne comme un charme et renvoie tous les éléments avec un « t » en leur nom:Comment utiliser l'instruction Sqlite3 COMME

const char *sql = "select * from bbc_ipad_v1_node where name LIKE '%%t%%'"; 

Lorsque J'essaie de le faire de manière dynamique Je ne reçois pas d'erreurs, mais juste un résultat vide. Il semble que la valeur est nulle. J'essaie de lier une valeur de chaîne « s » qui délivre une valeur correcte

NSLog(@"bbc_ : search menu items from db based on: %@",s); 
const char *sql = "select * from bbc_ipad_v1_node where name LIKE '%%?%%'"; 
sqlite3_stmt *statement; 
if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) { 
sqlite3_bind_text(statement, 1, [s UTF8String],-1,SQLITE_TRANSIENT); 

Comment dois-je lier cette valeur au lieu d'utiliser:

const char *sql = "select * from bbc_ipad_v1_node where name LIKE '%%?%%'"; 

Répondre

1

Vous pouvez réellement dire que

const char *sql = "select * from bbc_ipad_v1_node where name LIKE '%t%'"; 

(Notez les % mono s)