00001
00002
00003
00004
00005
00006
00007 #ifndef SQLMODELS_H
00008 #define SQLMODELS_H
00009
00010 #include <QSqlTableModel>
00011 #include <QItemDelegate>
00012 #include <QSqlRecord>
00013
00014 class QPushButton;
00015 class QByteArray;
00016
00017
00019 class SqlTableModel : public QSqlTableModel
00020 {
00021 Q_OBJECT
00022
00023 public:
00024 SqlTableModel( QObject * parent = 0, QSqlDatabase db = QSqlDatabase() );
00025 ~SqlTableModel() {};
00026
00027 void setSchema(const QString & schema) { m_schema = schema; };
00028 QString schema() { return m_schema; };
00029
00030 bool pendingTransaction() { return m_pending; };
00031
00037 void setPendingTransaction(bool pending);
00038 bool insertRows ( int row, int count, const QModelIndex & parent = QModelIndex() );
00039 bool removeRows ( int row, int count, const QModelIndex & parent = QModelIndex() );
00040
00041 private:
00042 bool m_useNull;
00043 QColor m_nullColor;
00044 QString m_nullText;
00045 bool m_useBlob;
00046 QColor m_blobColor;
00047 QString m_blobText;
00048 bool m_pending;
00049 QString m_schema;
00050 QList<int> m_deleteCache;
00051 bool m_cropColumns;
00052
00053 QVariant data(const QModelIndex & item, int role = Qt::DisplayRole) const;
00054 bool setData(const QModelIndex & index, const QVariant & value, int role = Qt::EditRole);
00055
00056 private slots:
00058 void doPrimeInsert(int, QSqlRecord &);
00059 };
00060
00062 class SqlQueryModel : public QSqlQueryModel
00063 {
00064 Q_OBJECT
00065
00066 public:
00067 SqlQueryModel( QObject * parent = 0);
00068 ~SqlQueryModel() {};
00069 void setQuery ( const QSqlQuery & query );
00070 void setQuery ( const QString & query, const QSqlDatabase & db = QSqlDatabase() );
00071 bool pendingTransaction() { return false; };
00072
00073 private:
00074 bool m_useNull;
00075 QColor m_nullColor;
00076 QString m_nullText;
00077 bool m_useBlob;
00078 QColor m_blobColor;
00079 QString m_blobText;
00080 QSqlRecord info;
00081 bool m_cropColumns;
00082
00083 QVariant data(const QModelIndex & item, int role = Qt::DisplayRole) const;
00084 };
00085
00086 #endif