Revision b0bf458e
Von Christian Ehringfeld vor etwa 9 Jahren hinzugefügt
src/querybuilder.h | ||
---|---|---|
#ifndef QUERYBUILDER_H
|
||
#define QUERYBUILDER_H
|
||
#include "schema.h"
|
||
#include <QString>
|
||
#include <QHash>
|
||
#include <QSharedPointer>
|
||
namespace CuteEntityManager {
|
||
class Schema;
|
||
class Entity;
|
||
class Database;
|
||
class QueryBuilder {
|
||
public:
|
||
QueryBuilder(QSharedPointer<Schema> schema, QSharedPointer<Database> database);
|
||
virtual ~QueryBuilder();
|
||
virtual bool createTable(const QSharedPointer<Entity> &entity) const;
|
||
virtual bool createTable(const QString &tableName, const QHash<QString, QString> &tableDefinition) const;
|
||
virtual QString createTableQuery(const QString &tableName, const QHash<QString, QString> &tableDefinition) const;
|
||
virtual bool renameTable(QString tableName, QString newName) const;
|
||
virtual bool dropTable(QString tableName) const;
|
||
virtual bool truncateTable(QString tableName) const;
|
||
virtual bool addColumn(QString tableName, QString columnName, QString columnType) const;
|
||
virtual QString dropColumn(QString tableName, QString columName)const;
|
||
virtual QString renameColumn(QString tableName, QString oldName, QString newName);
|
||
virtual QString alterColumn(QString tableName, QString columnName, QString newType)const;
|
||
virtual QString addPrimaryKey(QString name, QString tableName, QStringList columns)const;
|
||
virtual QString dropPrimaryKey(QString name, QString tableName) const;
|
||
virtual QString addForeignKey(QString name, QString tableName, QStringList columns, QString refTableName,
|
||
QStringList refColumns, QString deleteConstraint, QString updateConstraint);
|
||
virtual QString dropForeignKey(QString name, QString tableName) const;
|
||
virtual QString createIndex(QString name, QString tableName, QStringList columns, bool unique)const;
|
||
virtual QString dropIndex(QString name, QString tableName)const;
|
||
QHash<QString, QVariant> getEntityAttributes(const QSharedPointer<Entity> &entity);
|
||
QSharedPointer<Schema> getSchema() const;
|
||
void setSchema(const QSharedPointer<Schema> &value);
|
||
|
||
class QueryBuilder
|
||
{
|
||
public:
|
||
QueryBuilder();
|
||
~QueryBuilder();
|
||
bool createTable(QString tablename, QHash<QString, QString> tableDefinition);
|
||
QSharedPointer<Database> getDatabase() const;
|
||
void setDatabase(const QSharedPointer<Database> &value);
|
||
|
||
QHash<QString, QString> generateTableDefinition(const QSharedPointer<Entity> &entity) const;
|
||
|
||
|
||
protected:
|
||
void insertRelationId(const Entity *e, QHash<QString, QVariant> &map, QString relName);
|
||
|
||
|
||
QSharedPointer<Schema> schema;
|
||
QSharedPointer<Database> database;
|
||
};
|
||
}
|
||
|
||
#endif // QUERYBUILDER_H
|
Auch abrufbar als: Unified diff
wip