2009-08-18 11 views
0

J'ai une base de données sqlite que j'écris et que je lis. La plupart du temps j'écris, mais parfois je lis quelque chose.Fichier journal SQLite ne disparaît pas

La routine d'écriture (squelette, vérification d'erreur supprimée, etc.) est quelque chose comme ceci: st1 et st2 sont déjà préparés avec l'initialisation de la base de données.

-(BOOL) saveHvalue:(int) fid time:(int) t value:(double) v type:(int) ftype 
{ 

    { 
     sqlite3_bind_int(st1, 1, fid); 
     sqlite3_bind_int(st1, 2, t); 
     sqlite3_bind_int(st1, 3, ftype); 
     sqlite3_bind_double(st1, 4, v); 


     sqlite3_step(st1); 
     sqlite3_reset(st1); 
     sqlite3_clear_bindings(st1); 
    } 

    return YES; 
} 

La routine pour la lecture est la suivante:

-(double) getHvalue:(int) fid time:(int) t type:(int) ftype 
{ 
    double v=0; 

    { 
     sqlite3_bind_int(st2, 1, fid); 
     sqlite3_bind_int(st2, 2, t); 
     sqlite3_bind_int(st2, 3, ftype); 
     sqlite3_step(st2); 
     v = sqlite3_column_double(st2, 0); 

     sqlite3_reset(st2); 
     sqlite3_clear_bindings(st2); 
     return v; 
} 

La plupart du temps, je me sers saveHvalue, mais parfois je lis quelque chose en retour. Au moment où j'essaie cela, le fichier journal créé ne disparaît pas et il semble que l'écriture soit immédiatement supprimée. Dois-je faire quelque chose pour faire la transition entre l'écriture et la lecture?

Répondre

1

Avez-vous essayé d'exécuter un COMMIT (par exemple avec sqlite3_exec) après chaque écriture?

Questions connexes