Poco::Data::Keywords::use 不适用于 PostgreSQL?
Poco::Data::Keywords::use not working for PostgreSQL?
我正在尝试使用 POCO 在 PostgreSQL 中插入值。我正在尝试使用 Poco::Data::Keywords::use:
try
{
Poco::Data::PostgreSQL::Connector::registerConnector();
Poco::Data::Session session(Poco::Data::PostgreSQL::Connector::KEY,
"host=localhost port=5433 user=test password=test dbname=test_db");
int test1_id = 1;
int test2_id = 2;
int id = 0;
session << "insert into test (test1_id, test2_id) values (?, ?) returning id",
Poco::Data::Keywords::use(test1_id),
Poco::Data::Keywords::use(test2_id),
Poco::Data::Keywords::into(id),
Poco::Data::Keywords::now;
std::cout << "id = " << id << std::endl;
}
catch (const Poco::Exception& ex)
{
std::cout << "exception: " << ex.displayText() << std::endl;
}
但我遇到了一个例外:
exception: PostgreSQL: [PostgreSQL]: postgresql_stmt_prepare error: ERROR: syntax error at or near ","
LINE 1: ... into test (test1_id, test2_id) values (?, ?) retur...
^
insert into test (test1_id, test2_id) values (?, ?) returning id
如果我以其他方式插入:
session << "insert into presentation (test1_id, test2_id) values ('"
<< test1_id << "', '" << test2_id << "') returning id",
Poco::Data::Keywords::into(id),
Poco::Data::Keywords::now;
它工作正常。第一种方式我做错了什么?
有效
session << "insert into test (test1_id, test2_id) values (, ) returning id",
Poco::Data::Keywords::use(test1_id),
Poco::Data::Keywords::use(test2_id),
Poco::Data::Keywords::into(id),
Poco::Data::Keywords::now;
我正在尝试使用 POCO 在 PostgreSQL 中插入值。我正在尝试使用 Poco::Data::Keywords::use:
try
{
Poco::Data::PostgreSQL::Connector::registerConnector();
Poco::Data::Session session(Poco::Data::PostgreSQL::Connector::KEY,
"host=localhost port=5433 user=test password=test dbname=test_db");
int test1_id = 1;
int test2_id = 2;
int id = 0;
session << "insert into test (test1_id, test2_id) values (?, ?) returning id",
Poco::Data::Keywords::use(test1_id),
Poco::Data::Keywords::use(test2_id),
Poco::Data::Keywords::into(id),
Poco::Data::Keywords::now;
std::cout << "id = " << id << std::endl;
}
catch (const Poco::Exception& ex)
{
std::cout << "exception: " << ex.displayText() << std::endl;
}
但我遇到了一个例外:
exception: PostgreSQL: [PostgreSQL]: postgresql_stmt_prepare error: ERROR: syntax error at or near ","
LINE 1: ... into test (test1_id, test2_id) values (?, ?) retur...
^
insert into test (test1_id, test2_id) values (?, ?) returning id
如果我以其他方式插入:
session << "insert into presentation (test1_id, test2_id) values ('"
<< test1_id << "', '" << test2_id << "') returning id",
Poco::Data::Keywords::into(id),
Poco::Data::Keywords::now;
它工作正常。第一种方式我做错了什么?
有效
session << "insert into test (test1_id, test2_id) values (, ) returning id",
Poco::Data::Keywords::use(test1_id),
Poco::Data::Keywords::use(test2_id),
Poco::Data::Keywords::into(id),
Poco::Data::Keywords::now;