Basic support for update in Crud implementation, error reporting and transfering data to modified set is still missing.
This commit is contained in:
parent
3fb32f1200
commit
d626c19e14
15 changed files with 530 additions and 83 deletions
60
pglablib/QueryGenerator.h
Normal file
60
pglablib/QueryGenerator.h
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue