我正在使用来自C++应用程序的SQLite(3.6.4)(使用标准的C api).我的问题是:一旦查询已经准备好,使用sqlite3_prepare_v2()
和绑定参数使用sqlite3_bind_xyz()
- 是否有任何方法可以获得包含原始SQL查询的字符串?
原因是当出现问题时,我想打印查询(用于调试 - 这是一个内部开发人员只有测试应用程序).
例:
sqlite3_prepare_v2(db, "SELECT * FROM xyz WHERE something = ? AND somethingelse = ?", -1, &myQuery, NULL); sqlite3_bind_text(myQuery, 1, mySomething); sqlite3_bind_text(myQuery, 2, mySomethingElse); // .... // somewhere else, in another function perhaps if (sqlite3_step(myQuery) != SQLITE_OK) { // Here i'd like to print the actual query that failed - but I // only have the myQuery variable exit(-1); }
奖励点如果它还可以打印出绑定的实际参数.:)