2015-04-08 1 views
1

code:iOS Comment former une déclaration comme sqlite?

@try { 
     if (sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK) 
     { 
      const char * sql="Select Id, Name,Designation, Skill, Credits, Selected from candidate_info where Designation like '%%%@%%'"; 

      if(sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) 
      { 
       sqlite3_bind_text(statement, 1, [searchWord UTF8String], -1, SQLITE_TRANSIENT); 
       while (sqlite3_step(statement) ==SQLITE_ROW) 
       { 


       } 
      } 
      else 
       NSAssert1(0, @"Error in candidateinfo. '%s'", sqlite3_errmsg(database)); 

      sqlite3_reset(statement); 
     } 
    }@catch (NSException * e) { 
     NSLog(@"Exception is %@, %@", [e name], [e reason]); 
    }@finally { 
     sqlite3_finalize(statement); 
     sqlite3_close(database); 
    } 

je tente de récupérer les données de SQLite basé sur la recherche keyword.I a essayé avec comme requête statement.The n'exécute pas et sort de tout loop.what ne va pas avec mes code.thanks à l'avance

+0

Faire requête que vous faites, renvoie les données à l'aide d'une sqlmanager? – itsji10dra

Répondre

0

Essayez de créer votre requête en utilisant NSString:

NSString *sql = [NSString stringWithFormat:@"Select Id, Name,Designation, Skill, Credits, Selected from candidate_info where Designation like '%@'", searchWord] ; 

if (sqlite3_prepare_v2(database, [sql cStringUsingEncoding:NSUTF8StringEncoding], -1, &statement, NULL) == SQLITE_OK) 
{ 

} 

le problème est que vous utilisez « sqlite3_bind_text » dans le mauvais sens. Votre requête doit être:

const char * sql="Select Id, Name,Designation, Skill, Credits, Selected from candidate_info where Designation like '%%?%%'"; 

Il vous manque? »

+0

ne fonctionne pas – user3823935

+0

Voir ma réponse modifiée. – itsji10dra

+0

ne fonctionne toujours pas – user3823935

0

J'ai trouvé réponse à ma question

NSString *query = [NSString stringWithFormat:@"Select Id, Name,Designation, Skill, Credits, Selected from candidate_info where Designation LIKE '%%%@%%'", searchWord]; 
const char *sql = [query UTF8String];