Builds on windows again
This commit is contained in:
parent
33cf39b799
commit
bebb3391c3
160 changed files with 138 additions and 117 deletions
56
pglab/OpenDatabase.cpp
Normal file
56
pglab/OpenDatabase.cpp
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
#include "OpenDatabase.h"
|
||||
#include "PgDatabaseCatalogue.h"
|
||||
#include "Pgsql_Connection.h"
|
||||
#include "TypeSelectionItemModel.h"
|
||||
|
||||
Expected<OpenDatabase*> OpenDatabase::createOpenDatabase(const ConnectionConfig &cfg)
|
||||
{
|
||||
OpenDatabase *odb = new OpenDatabase(cfg, nullptr);
|
||||
if (odb->Init()) {
|
||||
|
||||
return odb;
|
||||
|
||||
}
|
||||
//return Expected<ConnectionConfig>::fromException(std::out_of_range("Invalid row"));
|
||||
return Expected<OpenDatabase*>::fromException(
|
||||
std::runtime_error("Failed to get database information"));
|
||||
}
|
||||
|
||||
OpenDatabase::OpenDatabase(const ConnectionConfig& cfg, QObject *parent)
|
||||
: QObject(parent)
|
||||
, m_config(cfg)
|
||||
, m_catalogue(new PgDatabaseCatalogue)
|
||||
{
|
||||
}
|
||||
|
||||
OpenDatabase::~OpenDatabase()
|
||||
{
|
||||
delete m_catalogue;
|
||||
}
|
||||
|
||||
bool OpenDatabase::Init()
|
||||
{
|
||||
Pgsql::Connection conn;
|
||||
auto kw = m_config.getKeywords();
|
||||
auto vals = m_config.getValues();
|
||||
if (conn.connect(kw, vals, 0)) {
|
||||
m_catalogue->loadAll(conn);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
PgDatabaseCatalogue* OpenDatabase::catalogue()
|
||||
{
|
||||
return m_catalogue;
|
||||
}
|
||||
|
||||
|
||||
TypeSelectionItemModel* OpenDatabase::typeSelectionModel()
|
||||
{
|
||||
if (m_typeSelectionModel == nullptr) {
|
||||
m_typeSelectionModel = new TypeSelectionItemModel(nullptr);
|
||||
m_typeSelectionModel->setTypeList(m_catalogue->types());
|
||||
}
|
||||
return m_typeSelectionModel;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue