allow to use db_hostaddr, db_port or db_conn_string config parameters to connect to PostgreSQL

This commit is contained in:
2022-04-20 18:37:52 +02:00
parent 7a115a3970
commit aae93d018b
6 changed files with 68 additions and 10 deletions

View File

@@ -64,9 +64,22 @@ PGconn * DbConn::GetPgConn()
}
void DbConn::SetConnParam(const std::wstring & d, const std::wstring & u, const std::wstring & p)
void DbConn::SetConnParam(const std::wstring & conn_string)
{
db_conn_string = conn_string;
db_host.clear();
db_port.clear();
db_database.clear();
db_user.clear();
db_pass.clear();
}
void DbConn::SetConnParam(const std::wstring & host, const std::wstring & port, const std::wstring & d, const std::wstring & u, const std::wstring & p)
{
db_conn_string.clear();
db_host = host;
db_port = port;
db_database = d;
db_user = u;
db_pass = p;
@@ -81,9 +94,26 @@ void DbConn::Connect()
conn_info.Clear();
conn_info.SetExtented(false);
conn_info << R("dbname=") << db_database
<< R(" user=") << db_user
<< R(" password=") << db_pass;
if( !db_conn_string.empty() )
{
conn_info << R(db_conn_string);
}
else
{
conn_info << R("dbname=") << db_database
<< R(" user=") << db_user
<< R(" password=") << db_pass;
if( !db_host.empty() )
{
conn_info << R(L"hostaddr=") << db_host;
}
if( !db_port.empty() )
{
conn_info << R(L"port=") << db_port;
}
}
pg_conn = PQconnectdb(conn_info.CStr());

View File

@@ -53,7 +53,8 @@ public:
DbConn();
~DbConn();
void SetConnParam(const std::wstring & database, const std::wstring & user, const std::wstring & pass);
void SetConnParam(const std::wstring & conn_string);
void SetConnParam(const std::wstring & host, const std::wstring & port, const std::wstring & database, const std::wstring & user, const std::wstring & pass);
void Connect();
void WaitForConnection();
void Close();
@@ -66,7 +67,8 @@ private:
void LogConnectionSocket();
PGconn * pg_conn;
std::wstring db_database, db_user, db_pass;
std::wstring db_conn_string;
std::wstring db_host, db_port, db_database, db_user, db_pass;
DbTextStream conn_info;
// a helper method for escaping strings