pgLab/src/PgsqlDatabaseCatalogue.cpp

52 lines
1 KiB
C++
Raw Normal View History

#include "PgsqlDatabaseCatalogue.h"
#include "PgTypeContainer.h"
#include "PgDatabaseContainer.h"
#include "PgsqlConn.h"
PgsqlDatabaseCatalogue::PgsqlDatabaseCatalogue()
{
}
PgsqlDatabaseCatalogue::~PgsqlDatabaseCatalogue()
{
delete m_types;
}
void PgsqlDatabaseCatalogue::loadAll(Pgsql::Connection &conn)
{
loadTypes(conn);
loadDatabases(conn);
}
void PgsqlDatabaseCatalogue::loadTypes(Pgsql::Connection &conn)
{
if (m_types == nullptr) {
m_types = new PgTypeContainer;
}
std::string q = m_types->getLoadQuery();
Pgsql::Result result = conn.query(q.c_str());
m_types->load(result);
}
void PgsqlDatabaseCatalogue::loadDatabases(Pgsql::Connection &conn)
{
if (m_databases == nullptr) {
m_databases = new PgDatabaseContainer;
}
std::string q = m_databases->getLoadQuery();
Pgsql::Result result = conn.query(q.c_str());
m_databases->load(result);
}
const PgTypeContainer* PgsqlDatabaseCatalogue::types() const
{
return m_types;
}
const PgDatabaseContainer *PgsqlDatabaseCatalogue::databases() const
{
return m_databases;
}