47 lines
1.1 KiB
C++
47 lines
1.1 KiB
C++
|
|
#ifndef TABLE_INFO_SQLITE_H
|
||
|
|
#define TABLE_INFO_SQLITE_H
|
||
|
|
|
||
|
|
#include "table_info_interface.h"
|
||
|
|
#include <QMetaType>
|
||
|
|
#include <QSqlDatabase>
|
||
|
|
#include <QSqlQuery>
|
||
|
|
#include <QSqlRecord>
|
||
|
|
#include <QStringList>
|
||
|
|
#include <QVector>
|
||
|
|
|
||
|
|
class TableInfoSQLite : public TableInfoInterface {
|
||
|
|
private:
|
||
|
|
QString databaseTableName_;
|
||
|
|
QVector<QString> columnNames_;
|
||
|
|
QVector<QString> columnTypes_;
|
||
|
|
QVector<bool> isPrimaryKey_;
|
||
|
|
|
||
|
|
public:
|
||
|
|
explicit TableInfoSQLite();
|
||
|
|
explicit TableInfoSQLite(const QString &databaseTableName);
|
||
|
|
~TableInfoSQLite() override = default;
|
||
|
|
|
||
|
|
QMetaType::Type
|
||
|
|
columnMetaType(const QString &columnName) const noexcept override;
|
||
|
|
|
||
|
|
QString columnName(int columnIndex) const noexcept override;
|
||
|
|
|
||
|
|
QString databaseTableName() const noexcept override;
|
||
|
|
|
||
|
|
QString foreignKeyTable(const QString &columnName) const noexcept;
|
||
|
|
|
||
|
|
QStringList columnNames() const noexcept override;
|
||
|
|
|
||
|
|
bool isPrimaryKey(const QString &columnName) const noexcept;
|
||
|
|
|
||
|
|
int columnIndex(const QString &columnName) const noexcept override;
|
||
|
|
|
||
|
|
void
|
||
|
|
setDatabaseTableName(const QString &databaseNametableName) noexcept override;
|
||
|
|
|
||
|
|
private:
|
||
|
|
void loadColumnInfo();
|
||
|
|
};
|
||
|
|
|
||
|
|
#endif // TABLE_INFO_SQLITE_H
|