我有一个sqlite数据库,我正在编写和阅读。我大部分时间都在写作,但偶尔也会读一些东西。
写入的例程(骨架化,错误检查已删除等等)如下所示:st1和st2已经准备好了数据库的初始化。
-(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;
}
阅读的例程是:
-(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;
}
我大部分时间都在使用saveHvalue,但偶尔会回读一些东西。我尝试这个瞬间创建的日志文件没有消失,似乎写作立即被杀死。
我是否需要做一些事情来在写作和阅读之间转换?
答案 0 :(得分:1)
您是否尝试在每次写入完成后执行COMMIT
(例如使用sqlite3_exec
)?