diff options
Diffstat (limited to 'src/plugins/sqldrivers/oci/qsql_oci_p.h')
-rw-r--r-- | src/plugins/sqldrivers/oci/qsql_oci_p.h | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/src/plugins/sqldrivers/oci/qsql_oci_p.h b/src/plugins/sqldrivers/oci/qsql_oci_p.h index fd173e21e8..feb037c20d 100644 --- a/src/plugins/sqldrivers/oci/qsql_oci_p.h +++ b/src/plugins/sqldrivers/oci/qsql_oci_p.h @@ -16,6 +16,7 @@ // #include <QtSql/qsqldriver.h> +#include <QtSql/private/qsqlcachedresult_p.h> #ifdef QT_PLUGIN #define Q_EXPORT_SQLDRIVER_OCI @@ -25,6 +26,7 @@ typedef struct OCIEnv OCIEnv; typedef struct OCISvcCtx OCISvcCtx; +struct QOCIResultPrivate; QT_BEGIN_NAMESPACE @@ -42,7 +44,7 @@ public: explicit QOCIDriver(QObject *parent = nullptr); QOCIDriver(OCIEnv *env, OCISvcCtx *ctx, QObject *parent = nullptr); ~QOCIDriver(); - bool hasFeature(DriverFeature f) const; + bool hasFeature(DriverFeature f) const override; bool open(const QString &db, const QString &user, const QString &password, @@ -58,6 +60,7 @@ public: bool trimStrings) const override; QVariant handle() const override; QString escapeIdentifier(const QString &identifier, IdentifierType) const override; + int maximumIdentifierLength(IdentifierType type) const override; protected: bool beginTransaction() override; @@ -65,6 +68,34 @@ protected: bool rollbackTransaction() override; }; +class Q_EXPORT_SQLDRIVER_OCI QOCIResult : public QSqlCachedResult +{ + friend class QOCIDriver; + friend struct QOCIResultPrivate; + friend class QOCICols; +public: + QOCIResult(const QOCIDriver * db, const QOCIDriverPrivate* p); + ~QOCIResult(); + bool prepare(const QString& query); + bool exec(); + QVariant handle() const; + +protected: + bool gotoNext(ValueCache &values, int index); + bool reset (const QString& query); + int size(); + int numRowsAffected(); + QSqlRecord record() const; + QVariant lastInsertId() const; + bool execBatch(bool arrayBind = false); + void virtual_hook(int id, void *data); + bool isCursor; + bool internal_prepare(); + +private: + QOCIResultPrivate *d; +}; + QT_END_NAMESPACE #endif // QSQL_OCI_H |