#ifndef QSQLRELATIONALTABLEMODEL_H
#define QSQLRELATIONALTABLEMODEL_H 
#include <QtSql/qsqltablemodel.h>
typedef enum QtValidLicenseForSqlModule QtSqlModule;
class QSqlRelation{
   public: inline QSqlRelation();
   public: inline QSqlRelation(class QString const & aTableName, class QString const & indexCol, class QString const & displayCol);
   public: inline class QString tableName() const
   public: inline class QString indexColumn() const
   public: inline class QString displayColumn() const
   public: inline bool isValid() const
   private: class QString tName;
   private: class QString iColumn;
   private: class QString dColumn;
};
struct QSqlRelationalTableModelPrivate;
class QSqlRelationalTableModel: public QSqlTableModel{
   public: template < typename T > inline void qt_check_for_QOBJECT_macro(T const & _q_argument) const
   public: static struct QMetaObject const staticMetaObject;
   public: virtual struct QMetaObject const * metaObject() const
   public: virtual void* qt_metacast(char const *);
   public: static inline class QString tr(char const * s, char const * c = 0);
   public: static inline class QString trUtf8(char const * s, char const * c = 0);
   public: static inline class QString tr(char const * s, char const * c, int n);
   public: static inline class QString trUtf8(char const * s, char const * c, int n);
   public: virtual int qt_metacall(enum QMetaObject::Call, int, void* *);
   public: explicit QSqlRelationalTableModel(class QObject* parent = 0, class QSqlDatabase db = QSqlDatabase::QSqlDatabase());
   public: virtual ~QSqlRelationalTableModel();
   public: virtual class QVariant data(class QModelIndex const & item, int role = Qt::DisplayRole) const
   public: virtual bool setData(class QModelIndex const & item, class QVariant const & value, int role = Qt::EditRole);
   public: virtual bool removeColumns(int column, int count, class QModelIndex const & parent = QModelIndex::QModelIndex());
   public: virtual void clear();
   public: virtual bool select();
   public: virtual void setTable(class QString const & tableName);
   public: virtual void setRelation(int column, class QSqlRelation const & relation);
   public: class QSqlRelation relation(int column) const
   public: virtual class QSqlTableModel* relationModel(int column) const
   public: virtual void revertRow(int row);
   protected: virtual class QString selectStatement() const
   protected: virtual bool updateRowInTable(int row, struct QSqlRecord const & values);
   protected: virtual bool insertRowIntoTable(struct QSqlRecord const & values);
   protected: virtual class QString orderByClause() const
   private: inline struct QSqlRelationalTableModelPrivate* d_func();
   private: inline struct QSqlRelationalTableModelPrivate const * d_func() const
   friend struct QSqlRelationalTableModelPrivate;
};
#endif // QSQLRELATIONALTABLEMODEL_H