⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qsql_occi.h

📁 本文件是<精通QT4编程>的配套源代码
💻 H
字号:
#ifndef QSQL_OCCI_H
#define QSQL_OCCI_H

#include <QtSql/qsqlresult.h>
#include <QtSql/qsqldriver.h>
#include <QtSql/private/qsqlcachedresult_p.h>

#include "occi.h"

using namespace oracle::occi;

class QOCCIResult : public QSqlCachedResult
{
    friend class QOCCIDriver;
public:
    QOCCIResult(const QOCCIDriver * db);
    ~QOCCIResult();
    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;
    void virtual_hook(int id, void *data);

private:
	Environment *env;		/// OCCI环境
	Connection *conn;		/// OCCI连接
	Statement *stmt;		/// OCCI语句
};


class QOCCIDriver : public QSqlDriver
{
    friend class QOCCIResultPrivate;
    friend class QOCCIPrivate;
public:
    explicit QOCCIDriver(QObject* parent = 0);
    ~QOCCIDriver();
    bool hasFeature(DriverFeature f) const;
    bool open(const QString & db,
              const QString & user,
              const QString & password,
              const QString & host,
              int port,
              const QString& connOpts);
    void close();
    QSqlResult *createResult() const;
    QStringList tables(QSql::TableType) const;
    QSqlRecord record(const QString& tablename) const;
    QSqlIndex primaryIndex(const QString& tablename) const;
    QString formatValue(const QSqlField &field,
                        bool trimStrings) const;
    QVariant handle() const;

protected:
    bool                beginTransaction();
    bool                commitTransaction();
    bool                rollbackTransaction();
private:
	Environment *env;		/// OCCI环境
	Connection *conn;		/// OCCI连接
	Statement *stmt;		/// OCCI语句
};

#endif // QSQL_OCCI_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -