Herunterladen als
root/src/querybuilder.h @ b0bf458e
14f9beed | Christian Ehringfeld | #ifndef QUERYBUILDER_H
|
|
#define QUERYBUILDER_H
|
|||
b0bf458e | Christian Ehringfeld | #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);
|
|||
14f9beed | Christian Ehringfeld | ||
b0bf458e | Christian Ehringfeld | QSharedPointer<Database> getDatabase() const;
|
|
void setDatabase(const QSharedPointer<Database> &value);
|
|||
14f9beed | Christian Ehringfeld | ||
b0bf458e | Christian Ehringfeld | 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;
|
|||
14f9beed | Christian Ehringfeld | };
|
|
b0bf458e | Christian Ehringfeld | }
|
|
14f9beed | Christian Ehringfeld | ||
#endif // QUERYBUILDER_H
|