当Poco :: Data创建一个SQL语句并将其发送到数据库(如SQLite)时,是否仍然可以查看生成了什么SQL?在发送之前就说?
例如,在以下代码中(类似于1.6.1中Poco提供的示例之一,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的工作方式不同,我们可以打印出后端执行的native SQL string

关于c++ - 在Poco::Data for SQLite中,是否仍然可以看到生成的sql?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32768683/

10-13 03:26