2011-02-21 14 views
5

Cómo eliminar todo el registro de la base de datos SQLite.Cómo eliminar registros de SQLite para iPhone

+(BOOL)deleteFromtbl { 
     sqlite3 *database; 
     BOOL retValue = YES; 
     if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) { 
      const char *sqlStatement = "Delete from tbl"; 
      sqlite3_stmt *compiledStatement; 
      retValue = sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL); 
      sqlite3_finalize(compiledStatement); 
     } 
     sqlite3_close(database); 

     return retValue;   
    } 

Este código no funcionó para mí.

Gracias de antemano.

+0

Dónde qué falló? Sugiero verificar los valores de retorno de cada función que llamas. Además, las consultas SQL generalmente terminan con un punto y coma ';', pero su instrucción SQL no lo hace. Es eso intencional? ¿SQLite3 te permite dejar el punto y coma? – sarnold

+0

@sarnold todas las cosas que tenía control y todas son correctas. Y iShu ya me había proporcionado una solución y está funcionando para mí. Gracias –

Respuesta

4

sqlite3_step, esta función requiere después de preparar la declaración de compilación.

uso de esta forma

+(BOOL)deleteFromtbl { 
     sqlite3 *database; 
     BOOL retValue = YES; 
     if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) { 
      const char *sqlStatement = "Delete from tbl"; 
      sqlite3_stmt *compiledStatement; 
      retValue = sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL); 
if(SQLITE_DONE != sqlite3_step(compiledStatement))//add this line 
    { 
     NSLog(@"Error while inserting data. '%s'", sqlite3_errmsg(database)); 
     return NO; 
    } 
      sqlite3_finalize(compiledStatement); 
     } 
     sqlite3_close(database); 

     return retValue;   
    } 
Cuestiones relacionadas