【发布时间】:2021-02-21 00:25:00
【问题描述】:
我正在使用来自 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);
}
如果它还可以打印出绑定的实际参数,则可以加分。 :)
【问题讨论】: