1 /**************************************************************************** 2 ** 3 ** Definition of Interbase driver classes 4 ** 5 ** Created : 030911 6 ** 7 ** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved. 8 ** 9 ** This file is part of the sql module of the Qt GUI Toolkit. 10 ** 11 ** This file may be distributed under the terms of the Q Public License 12 ** as defined by Trolltech ASA of Norway and appearing in the file 13 ** LICENSE.QPL included in the packaging of this file. 14 ** 15 ** This file may be distributed and/or modified under the terms of the 16 ** GNU General Public License version 2 as published by the Free Software 17 ** Foundation and appearing in the file LICENSE.GPL included in the 18 ** packaging of this file. 19 ** 20 ** Licensees holding valid Qt Enterprise Edition licenses may use this 21 ** file in accordance with the Qt Commercial License Agreement provided 22 ** with the Software. 23 ** 24 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 25 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 26 ** 27 ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for 28 ** information about Qt Commercial License Agreements. 29 ** See http://www.trolltech.com/qpl/ for QPL licensing information. 30 ** See http://www.trolltech.com/gpl/ for GPL licensing information. 31 ** 32 ** Contact info@trolltech.com if any conditions of this licensing are 33 ** not clear to you. 34 ** 35 **********************************************************************/ 36 37 #ifndef QSQL_IBASE_H 38 #define QSQL_IBASE_H 39 40 #include "qsqlresult.h" 41 #include "qsqldriver.h" 42 #include "../cache/qsqlcachedresult.h" 43 44 45 class QIBaseDriverPrivate; 46 class QIBaseResultPrivate; 47 class QIBaseDriver; 48 49 class QIBaseResult : public QtSqlCachedResult 50 { 51 friend class QIBaseDriver; 52 friend class QIBaseResultPrivate; 53 54 public: 55 QIBaseResult(const QIBaseDriver* db); 56 virtual ~QIBaseResult(); 57 58 bool prepare(const QString& query); 59 bool exec(); 60 61 protected: 62 bool gotoNext(QtSqlCachedResult::RowCache* row); 63 bool reset (const QString& query); 64 int size(); 65 int numRowsAffected(); 66 67 private: 68 QIBaseResultPrivate* d; 69 }; 70 71 class QIBaseDriver : public QSqlDriver 72 { 73 friend class QIBaseDriverPrivate; 74 friend class QIBaseResultPrivate; 75 friend class QIBaseResult; 76 public: 77 QIBaseDriver(QObject *parent = 0, const char *name = 0); 78 QIBaseDriver(void *connection, QObject *parent = 0, const char *name = 0); 79 virtual ~QIBaseDriver(); 80 bool hasFeature(DriverFeature f) const; 81 bool open(const QString & db, 82 const QString & user, 83 const QString & password, 84 const QString & host, 85 int port, 86 const QString & connOpts); open(const QString & db,const QString & user,const QString & password,const QString & host,int port)87 bool open( const QString & db, 88 const QString & user, 89 const QString & password, 90 const QString & host, 91 int port ) { return open (db, user, password, host, port, QString()); } 92 void close(); 93 QSqlQuery createQuery() const; 94 bool beginTransaction(); 95 bool commitTransaction(); 96 bool rollbackTransaction(); 97 QStringList tables(const QString& typeName) const; 98 99 QSqlRecord record(const QString& tablename) const; 100 QSqlRecordInfo recordInfo(const QString& tablename) const; 101 QSqlIndex primaryIndex(const QString &table) const; 102 QSqlRecord record(const QSqlQuery& query) const; 103 QSqlRecordInfo recordInfo(const QSqlQuery& query) const; 104 105 QString formatValue(const QSqlField* field, bool trimStrings) const; 106 107 private: 108 QIBaseDriverPrivate* d; 109 }; 110 111 112 #endif 113 114