gpt4 book ai didi

C++类成员初始化(poco)

转载 作者:行者123 更新时间:2023-11-30 02:07:19 25 4
gpt4 key购买 nike

我正在使用 Poco::Database::ODBC 为我的数据库制作一个包装器

正常的代码应该是这样的:

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':不是'Poco::Data::ODBC::Connector'的成员

我应该怎么做??

最佳答案

要么在 database::database() 之外执行,要么使用指向 Session 的指针而不是成员,然后在构造函数内的堆上分配它。像这样的东西:

database::database()
{
Poco::Data::ODBC::Connector::registerConnector();
ses = new Session("ODBC", "DSN=name;uid=user;pwd=pass");
}

database::~database()
{
delete ses;
}

关于C++类成员初始化(poco),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8000270/

25 4 0
文章推荐: java - 将位图从相机保存到手机需要 25 秒以上
文章推荐: java - Thymeleaf 返回 String 数组而不是 List