Basic support for update in Crud implementation, error reporting and transfering data to modified set is still missing.

This commit is contained in:
eelke 2018-02-05 21:42:54 +01:00
parent 3fb32f1200
commit d626c19e14
15 changed files with 530 additions and 83 deletions

60
pglablib/QueryGenerator.h Normal file
View file

@ -0,0 +1,60 @@
#ifndef QUERYGENERATOR_H
#define QUERYGENERATOR_H
#include <QString>
#include <memory>
class PgDatabaseCatalog;
class PgClass;
namespace Querygen {
class QueryGeneratorFactory;
using QueryGeneratorFactoryPtr = std::shared_ptr<QueryGeneratorFactory>;
class Update;
using UpdatePtr = std::shared_ptr<Update>;
class ColumnRef;
using ColumnRefPtr = std::shared_ptr<ColumnRef>;
class FQTableName {
public:
QString nsName;
QString tableName;
};
class ColumnRef {
public:
virtual QString getFCQS() const = 0;
};
class Update {
public:
Update(QString ns, QString tbl, QString alias)
: table{ns, tbl}
{}
private:
FQTableName table;
QString tableAlias;
};
using UpdatePtr = std::shared_ptr<Update>;
class QueryGeneratorFactory {
public:
QueryGeneratorFactory(std::shared_ptr<PgDatabaseCatalog> catalog);
UpdatePtr update(QString ns, QString table_name, QString alias = QString());
UpdatePtr update(const PgClass &table_class, QString alias = QString());
private:
std::shared_ptr<PgDatabaseCatalog> m_catalog;
};
} // end namespace Querygen
#endif // QUERYGENERATOR_H