绑定后打印/记录SQLite语句

Chr*_*mer 3 sqlite objective-c

我喜欢在此之后记录编译后的Statement:

if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK)    {

    sqlite3_bind_int( compiledStatement, 1, updateThis.web_id);
    [...]

}
NSLog(@"Put out the complete SQLite Statement.");
Run Code Online (Sandbox Code Playgroud)

直接输出失败了,我认为这不是这样做的方法:

NSLog(@"%@",compiledStatement);
Run Code Online (Sandbox Code Playgroud)

pek*_*eko 9

您无法打印compiledStatement.你可以做的是实现sqlite3_trace回调函数.这将打印每个执行的sql语句.

要实现该功能,请在@implementation块之前添加此功能

void sqliteCallbackFunc(void *foo, const char* statement) {
    NSLog(@"=> %s", statement);
}
Run Code Online (Sandbox Code Playgroud)

这是你要指出的功能.

要指向这个函数简单的调用:

sqlite3_trace(db, sqliteCallbackFunc, NULL);