2009-08-18 6 views
0

Ich habe eine SQLite-Datenbank Ich schreibe und lese von. Die meiste Zeit schreibe ich, aber gelegentlich lese ich etwas.SQLite-Journal-Datei nicht weg

Die Routine für das Schreiben (skelettiert, Fehlerprüfung entfernt etc ..) geht etwa so: st1 und st2 sind bereits mit der Initialisierung der Datenbank vorbereitet.

-(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; 
} 

Die Routine zum Lesen ist:

-(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; 
} 

Die meiste Zeit ich saveHvalue verwende, aber etwas gelegentlich lese ich zurück. In dem Augenblick, in dem ich es versuche, wird die erstellte Journaldatei nicht gelöscht, und es scheint, dass das Schreiben sofort beendet wird.

Muss ich etwas tun, um zwischen Schreiben und Lesen zu wechseln?

Antwort

1

Haben Sie versucht, einen COMMIT (z. B. mit sqlite3_exec) auszuführen, nachdem jeder Schreibvorgang abgeschlossen ist?