USGS

Isis 3.0 Object Programmers' Reference

Home

Database.h
Go to the documentation of this file.
1 #ifndef Database_h
2 #define Database_h
3 
26 #include <string>
27 #include <vector>
28 #include <iostream>
29 #include "DbProfile.h"
30 #include "IException.h"
31 #include <QSqlDatabase>
32 
33 namespace Isis {
34 
84  class Database : public QSqlDatabase {
85  public:
87  typedef enum {
90  } Access;
91 
92  Database();
93  Database(Access dbConn);
94  Database(const QString &connName, const QString &driverType);
95  Database(const QString &name, Access dbConn = Connect);
96  Database(const DbProfile &profile, Access dbConn = Connect);
97  virtual ~Database();
98 
104  QString Name() const {
105  return (_name);
106  }
107 
108  void makePersistant();
109  bool isPersistant() const;
110  void setAsDefault();
111  Database clone(const QString &name) const;
112  QStringList getTables() const;
113  QStringList getViews() const;
115 
116  static void remove(const QString &name);
117 
118  static bool addAccessConfig(const QString &confFile);
119  static DbProfile getProfile(const QString &name);
120 
121  protected:
122  Database(const QSqlDatabase &other, const QString &name);
123  QSqlDatabase init(const DbProfile &profile, Access dbConn = Connect);
124  QSqlDatabase init(const QString &name = "",
125  const QString &driverType = "");
126  void configureAccess(QSqlDatabase &db, const DbProfile &profile);
127 
128  private:
129  static QString _actualConnectionName;
132  QString _name;
133 
134  void tossDbError(const QString &message, const char *f, int l) const;
135  };
136 
137 }
138 #endif