Go to the
documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #ifndef QSQL_OCI_H
00043 #define QSQL_OCI_H
00044
00045 #include <QtSql/qsqlresult.h>
00046 #include <QtSql/qsqldriver.h>
00047 #include <QtSql/private/qsqlcachedresult_p.h>
00048
00049 #ifdef QT_PLUGIN
00050 #define Q_EXPORT_SQLDRIVER_OCI
00051 #else
00052 #define Q_EXPORT_SQLDRIVER_OCI Q_SQL_EXPORT
00053 #endif
00054
00055 QT_BEGIN_HEADER
00056
00057 QT_BEGIN_NAMESPACE
00058
00059 class QOCIDriver;
00060 class QOCICols;
00061 struct QOCIDriverPrivate;
00062 struct QOCIResultPrivate;
00063
00064 typedef struct OCIEnv OCIEnv;
00065 typedef struct OCISvcCtx OCISvcCtx;
00066
00067 class Q_EXPORT_SQLDRIVER_OCI QOCIResult : public QSqlCachedResult
00068 {
00069 friend class QOCIDriver;
00070 friend struct QOCIResultPrivate;
00071 friend class QOCICols;
00072 public:
00073 QOCIResult(const QOCIDriver * db, const QOCIDriverPrivate* p);
00074 ~QOCIResult();
00075 bool prepare(const QString& query);
00076 bool exec();
00077 QVariant handle() const;
00078
00079 protected:
00080 bool gotoNext(ValueCache &values, int index);
00081 bool reset (const QString& query);
00082 int size();
00083 int numRowsAffected();
00084 QSqlRecord record() const;
00085 QVariant lastInsertId() const;
00086 void virtual_hook(int id, void *data);
00087
00088 private:
00089 QOCIResultPrivate *d;
00090 };
00091
00092 class Q_EXPORT_SQLDRIVER_OCI QOCIDriver : public QSqlDriver
00093 {
00094 Q_OBJECT
00095 friend struct QOCIResultPrivate;
00096 friend class QOCIPrivate;
00097 public:
00098 explicit QOCIDriver(QObject* parent = 0);
00099 QOCIDriver(OCIEnv* env, OCISvcCtx* ctx, QObject* parent = 0);
00100 ~QOCIDriver();
00101 bool hasFeature(DriverFeature f) const;
00102 bool open(const QString & db,
00103 const QString & user,
00104 const QString & password,
00105 const QString & host,
00106 int port,
00107 const QString& connOpts);
00108 void close();
00109 QSqlResult *createResult() const;
00110 QStringList tables(QSql::TableType) const;
00111 QSqlRecord record(const QString& tablename) const;
00112 QSqlIndex primaryIndex(const QString& tablename) const;
00113 QString formatValue(const QSqlField &field,
00114 bool trimStrings) const;
00115 QVariant handle() const;
00116 QString escapeIdentifier(const QString &identifier, IdentifierType) const;
00117
00118 protected:
00119 bool beginTransaction();
00120 bool commitTransaction();
00121 bool rollbackTransaction();
00122 private:
00123 QOCIDriverPrivate *d;
00124 };
00125
00126 QT_END_NAMESPACE
00127
00128 QT_END_HEADER
00129
00130 #endif // QSQL_OCI_H