当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;
}
答案 0 :(得分:1)
我不确定SQLite是否可能,因为在绑定时,SQLite API需要准备带占位符的字符串,然后绑定数据绑定调用sqlite3_bind *()。 ODBC的工作方式不同,我们可以打印出后端执行的native SQL string。
答案 1 :(得分:0)
db browser tool有执行sql的选项。 (http://sqlitebrowser.org/)