在Poco :: Data for SQLite中,有没有看到生成的sql?

时间:2015-09-24 18:45:20

标签: c++ sqlite poco poco-libraries

当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;
}

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

db browser tool有执行sql的选项。 (http://sqlitebrowser.org/