sqldatabase.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #ifndef SQLDATABASE_H
  2. #define SQLDATABASE_H
  3. #include <QObject>
  4. #include <QtSql>
  5. class SqlQuery;
  6. class Q_SQL_EXPORT SqlDatabase : public QObject
  7. {
  8. Q_OBJECT
  9. /////////////////////////////////////////////////////////////
  10. // properties
  11. Q_PROPERTY(QString hostName READ getHostName WRITE setHostName)
  12. Q_PROPERTY(QString databaseName READ getDatabaseName WRITE setDatabaseName)
  13. Q_PROPERTY(QString userName READ getUsername WRITE setUsername)
  14. Q_PROPERTY(QString passWord READ getPassword WRITE setPassword)
  15. Q_PROPERTY(QString driverName READ getDriverName WRITE setDriverName)
  16. Q_PROPERTY(bool isOpen READ isOpen)
  17. public:
  18. explicit SqlDatabase(QObject *pParent = 0);
  19. virtual ~SqlDatabase(void);
  20. /////////////////////////////////////////////////////////////
  21. // methods
  22. Q_INVOKABLE bool open(void);
  23. Q_INVOKABLE void close(void);
  24. Q_INVOKABLE SqlQuery * query(const QString &sql) const;
  25. Q_INVOKABLE static bool isDriverAvailable(const QString &driveName);
  26. private:
  27. /////////////////////////////////////////////////////////////
  28. // properties getters/setters
  29. QString getHostName(void) const;
  30. void setHostName(const QString &val);
  31. QString getDatabaseName(void) const;
  32. void setDatabaseName(const QString &val);
  33. QString getUsername(void) const;
  34. void setUsername(const QString &val);
  35. QString getPassword(void) const;
  36. void setPassword(const QString &val);
  37. QString getDriverName(void) const;
  38. void setDriverName(const QString &driverName);
  39. bool isOpen(void) const;
  40. private:
  41. QString m_hostName;
  42. QString m_databaseName;
  43. QString m_userName;
  44. QString m_passWord;
  45. QString m_connectionName;
  46. QString m_driverName;
  47. QSqlDatabase *m_pdb;
  48. static int m_nInst;
  49. };
  50. class Q_SQL_EXPORT SqlQuery : public QObject
  51. {
  52. Q_OBJECT
  53. public:
  54. SqlQuery(QObject *pParent = 0);
  55. explicit SqlQuery(const QString &query, QSqlDatabase db);
  56. virtual ~SqlQuery(void);
  57. Q_INVOKABLE bool next(void);
  58. Q_INVOKABLE bool previous(void);
  59. Q_INVOKABLE QVariant value(int index) const;
  60. Q_INVOKABLE QVariant value(const QString &name) const;
  61. Q_INVOKABLE bool isValid(void) const;
  62. Q_INVOKABLE bool isActive(void) const;
  63. Q_INVOKABLE int size(void) const;
  64. Q_INVOKABLE void close(void);
  65. private:
  66. QSqlQuery *m_pQuery;
  67. };
  68. #endif // SQLDATABASE_H