我想提出一个包装为我用的数据库,采用波科::数据库:: ODBCC++类成员初始化(POCO)
正常的代码应该是这样的:
Poco::Data::ODBC::Connector::registerConnector();
Session ses("ODBC", "DSN=mytest;Uid=mytest;Pwd=mytest");
bool bConnected = ses.isConnected();
Statement select(ses);
select << "SELECT firstname FROM Patients", range(0, 10);
RecordSet rs(select);
while (!select.done())
{
select.execute();
bool more = rs.moveFirst();
while (more)
{
for (std::size_t col = 0; col < rs.columnCount(); ++col)
{
std::cout << rs[col].convert<std::string>() << " ";
}
std::cout << std::endl;
more = rs.moveNext();
}
}
Poco::Data::ODBC::Connector::unregisterConnector();
这工作得很好。
现在对于我的课
class database{
Session ses; //Since this is needed all for all the queries.
public:
database():ses("ODBC", "DSN=name;uid=user;pwd=pass"){
}
};//end class
我如何的ses
初始化调用之前调用Poco::Data::ODBC::Connector::registerConnector()
我试图
database():Poco::Data::ODBC::Connector::registerConnector(),ses("ODBC", "DSN=name;uid=user;pwd=pass"){
}
但这并不适用。它提供了错误
'registerConnector' : is not a member of 'Poco::Data::ODBC::Connector'
我应该怎么办呢?
'ses'用于像'ses <<“SELECT COUNT(*)FROM customer”这样的语句,进入(count),now;',我早些时候试过这种方法,但是这些语句给出了错误。 – Pheonix
'(* ses)<<“SELECT COUNT(*)FROM customer”'将起作用。 或者:Session&sessRef = * ses; sessRef <<“SELECT COUNT(*)FROM customer'如果你觉得它太笨拙 –
谢谢,使用第一个版本 – Pheonix