我需要记录查询,不仅是插入/更新/删除,还要从使用SQLite的许多应用程序中选择和其他查询.在这种情况下,向应用程序引入日志记录在实践中不是可行的解决方案.那么如何在SQLite本身启用查询日志记录呢?
看一下sqlite Trace API.你必须自己实现回调.
void *sqlite3_trace(sqlite3*, void(*xTrace)(void*,const char*), void*);
注册的回调函数
sqlite3_trace()
在运行SQL语句的不同时间调用sqlite3_step()
.当语句首次开始执行时,回调将返回SQL语句文本的UTF-8呈现.输入每个触发的子程序时会发生其他回调.