LibEngsas
esqldatabase.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2010 - 2012 EngSaS - Engineering Solutions and Services Langenbach. All rights reserved.
3 
4  This library is free software; you can redistribute it and/or
5  modify it under the terms of the GNU Lesser General Public
6  License as published by the Free Software Foundation; either
7  version 2.1 of the License, or (at your option) any later version.
8 
9  This library is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  Lesser General Public License for more details.
13 
14  You should have received a copy of the GNU Lesser General Public
15  License along with this library; if not, write to the Free Software
16  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17  MA 02110-1301 USA.
18 */
19 
20 #ifndef ESQLDATABASE_H
21 #define ESQLDATABASE_H
22 
23 #include "eglobal.h"
24 
25 #include <QSqlDatabase>
26 
27 namespace KWallet {
28  class Wallet;
29 }
30 
35 class E_CORE_EXPORT ESqlDatabase : public QSqlDatabase
36 {
37  public:
38  ESqlDatabase ();
39  ESqlDatabase ( const QSqlDatabase & other );
40  ESqlDatabase ( const QString &useType );
41  ~ESqlDatabase();
42 
43  bool loadAndCheckSettings(QString username, QString host, QString dbName,
44  QString newType, QString passwd);
45  void setType(QString name);
46  QString type();
47 
48 // bool open();
49  QStringList tables ( QSql::TableType type = QSql::Tables ) const;
50 
51 // static MSqlDatabase addDatabase(const QString &useType, const QString &connectionName = QString());
52  static bool checkSettings();
59  static ESqlDatabase database(QString connectionName = QLatin1String( defaultConnection ));
60 
61  private:
65  QStringList tableList() const;
70  QStringList systemTableList() const;
74  QStringList viewList() const;
78  QStringList allList() const;
79 
80  void init();
81 
82  QString myType;
83  KWallet::Wallet *wallet;
84 };
85 
86 #endif // ESQLDATABASE_H