diff --git a/src/sqlitetypes.cpp b/src/sqlitetypes.cpp index 5a0cc15a..994be911 100644 --- a/src/sqlitetypes.cpp +++ b/src/sqlitetypes.cpp @@ -2,6 +2,8 @@ namespace sqlb { +QStringList Field::Datatypes = QStringList() << "INTEGER" << "TEXT" << "BLOB" << "REAL" << "NUMERIC"; + QString Field::toString(const QString& indent, const QString& sep) const { QString str = indent + m_name + sep + m_type; @@ -43,12 +45,18 @@ bool Field::isInteger() const || norm == "int8"; } -Table::~Table() +void Table::clear() { foreach(Field* f, m_fields) { delete f; } m_fields.clear(); + m_primarykey.clear(); +} + +Table::~Table() +{ + clear(); } void Table::addField(Field *f) @@ -56,6 +64,13 @@ void Table::addField(Field *f) m_fields.append(f); } +void Table::setFields(const FieldList &fields) +{ + m_primarykey.clear(); + clear(); + m_fields = fields; +} + bool Table::setPrimaryKey(const FieldList& pk) { foreach(Field* f, pk) { diff --git a/src/sqlitetypes.h b/src/sqlitetypes.h index 21a3e466..04a95d90 100644 --- a/src/sqlitetypes.h +++ b/src/sqlitetypes.h @@ -16,6 +16,10 @@ public: QString toString(const QString& indent = "\t", const QString& sep = "\t") const; + void setName(const QString& name) { m_name = name; } + void setType(const QString& type) { m_type = type; } + void setNotNull(bool notnull = true) { m_notnull = notnull; } + void setCheck(const QString& check) { m_check = check; } void setAutoIncrement(bool autoinc) { m_autoincrement = autoinc; } bool isText() const; @@ -26,6 +30,8 @@ public: bool notnull() const { return m_notnull; } const QString& check() const { return m_check; } bool autoIncrement() const { return m_autoincrement; } + + static QStringList Datatypes; private: QString m_name; QString m_type; @@ -41,10 +47,14 @@ public: Table(const QString& name): m_name(name) {} virtual ~Table(); + void setName(const QString& name) { m_name = name; } + const QString& name() const { return m_name; } QString sql() const; void addField(Field* f); + void setFields(const FieldList& fields); + void clear(); bool setPrimaryKey(const FieldList& pk); bool setPrimaryKey(Field* pk, bool autoincrement = false);