在Poco::Data for SQLite中,是否可以看到生成的sql



当Poco::Data创建SQL语句并将其发送到数据库(如SQLite)时,无论如何都可以看到生成了什么SQL ?甚至在发送之前?例如,在下面的代码(类似于一个Poco提供的示例版本1.6.1 Poco/Data/samples/TypeHandler/src/TypeHandler.cpp)中,无论如何都可以看到为INSERT语句生成的SQL ?即使有一个InvalidSQLException抛出最终?

using namespace Poco::Data::Keywords;
using Poco::Data::Session;
using Poco::Data::Statement;
int main() {
    Person aperson("firstName", "lastName", 1234);
    Poco::Data::SQLite::Connector::registerConnector();
    Session session("SQLite", "sample.db");
    session << "DROP TABLE IF EXISTS Person", now;
    session << "CREATE TABLE Person (Name VARCHAR(30), LastName VARCHAR(30), ID INTEGER(10))", now;
    session << "INSERT INTO Person VALUES (?,?,?)", use(aperson), now;
    return 0;
}

我不确定SQLite是否有可能,因为在绑定时,SQLite API希望准备占位符字符串,然后绑定数据绑定调用sqlite3_bind*()。ODBC的工作方式不同,我们可以打印出后端执行的本地SQL字符串。

db浏览器工具有选项执行sql。(http://sqlitebrowser.org/)

最新更新