#ifndef QSQLDRIVER_H
#define QSQLDRIVER_H 
#include <QtCore/qobject.h>
#include <QtCore/qstring.h>
#include <QtSql/qsql.h>
typedef enum QtValidLicenseForSqlModule QtSqlModule;
struct QSqlDatabase;
struct QSqlDriverPrivate;
struct QSqlError;
struct QSqlField;
struct QSqlIndex;
struct QSqlRecord;
struct QSqlResult;
class QSqlDriver: public QObject{
   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* *);
   private: inline struct QSqlDriverPrivate* d_func();
   private: inline struct QSqlDriverPrivate const * d_func() const
   public: enum DriverFeature{
      Transactions = 0,
      QuerySize = 1,
      BLOB = 2,
      Unicode = 3,
      PreparedQueries = 4,
      NamedPlaceholders = 5,
      PositionalPlaceholders = 6,
      LastInsertId = 7,
      BatchOperations = 8,
   };
   public: enum StatementType{
      WhereStatement = 0,
      SelectStatement = 1,
      UpdateStatement = 2,
      InsertStatement = 3,
      DeleteStatement = 4,
   };
   public: enum IdentifierType{
      FieldName = 0,
      TableName = 1,
   };
   public: explicit QSqlDriver(class QObject* parent = 0);
   public: virtual ~QSqlDriver();
   public: virtual bool isOpen() const
   public: bool isOpenError() const
   public: virtual bool beginTransaction();
   public: virtual bool commitTransaction();
   public: virtual bool rollbackTransaction();
   public: virtual struct QStringList tables(enum QSql::TableType tableType) const
   public: virtual struct QSqlIndex primaryIndex(class QString const & tableName) const
   public: virtual struct QSqlRecord record(class QString const & tableName) const
   public: virtual class QString formatValue(struct QSqlField const & field, bool trimStrings = 0) const
   public: virtual class QString escapeIdentifier(class QString const & identifier, enum QSqlDriver::IdentifierType type) const
   public: virtual class QString sqlStatement(enum QSqlDriver::StatementType type, class QString const & tableName, struct QSqlRecord const & rec, bool preparedStatement) const
   public: struct QSqlError lastError() const
   public: virtual struct QVariant handle() const
   public: virtual bool hasFeature(enum QSqlDriver::DriverFeature f) const = 0;
   public: virtual void close() = 0;
   public: virtual struct QSqlResult* createResult() const = 0;
   public: virtual bool open(class QString const & db, class QString const & user = QString::QString(), class QString const & password = QString::QString(), class QString const & host = QString::QString(), int port = -1, class QString const & connOpts = QString::QString()) = 0;
   protected: virtual void setOpen(bool o);
   protected: virtual void setOpenError(bool e);
   protected: virtual void setLastError(struct QSqlError const & e);
   private: QSqlDriver(class QSqlDriver const &);
   private: class QSqlDriver& operator =(class QSqlDriver const &);
   friend struct QSqlDatabase;
   friend struct QSqlDriverPrivate;
};
#endif // QSQLDRIVER_H