我想获得最终的SQL查询,并将参数值绑定(替换)以进行调试。这是一个相当大而复杂的查询(一些连接,大约20个参数)。只是想知道是否可以访问传递给sqlite db的最终查询。
//PSEUDO CODE
theSQL = "SELECT a,b,c FROM myTable where aField = ?";
sqlite3_prepare_v2(myDb, theSQL, -1, &compiledStatement, NULL);
sqlite3_bind_text(compiledStatement, 1, myUTF8stringParam, -1, SQLITE_STATIC);
theSQLwithBoundParams = //<<<--- here is missing what I look for ;)
NSLog(@"Perpared Statement with params: %@", theSQLwithBoundParams);
...
我已经浏览了网页和sqlite文档而没有运气。 作为参考,我在stackoverflow上找到了a similar question。它已经差不多一年了 - 所以我想再问一次应该没事......
提前致谢,
马库斯
答案 0 :(得分:1)
您可能需要查看this问题。基本上,你可以自己编写
sqlite3_trace
记录最新查询。
答案 1 :(得分:0)
从SQLite 3.14开始,有sqlite3_expanded_sql()
函数。
您可以在使用sqlite3_trace_v2()
功能注册的回调中调用它。