• otl翻译(11) -- OTL的迭代器


    OTL stream read iterator

    这个类是一个像传统的JDBC中的getter()操作一样扩展了OTL流的模板类。它现在还不支持UNICODE字符集。它对otl_refcur_stream和otl_stream的使用基本相同(在ORACLE8版本里面)。

    模板的定义如下:

    template<typename OTLStream,

             typename OTLException

    #if !defined(OTL_ORA7)

      // when any flavor of OTL but OTL_ORA7 is defined:

      // OTL_ORA8, OTL_ORA8I, OTL_ORA9I, OTL_ORA10G,

      // OTL_ORA10G_R2, OTL_ODBC, OTL_DB2_CLI

             ,typename OTLLobStream

    #endif

            >

    class otl_stream_read_iterator{

    //...

    }

    下面为相关的函数与说明:

    序号

    函数

    说明

    1

    otl_stream_read_iterator();

    默认构造函数

    2

    ~otl_stream_read_iterator();

    析构函数

    3

    otl_stream_read_iterator(OTLStream& s);

    构造函数。把它附着到一个流上面

    4

    void attach(OTLStream& s);

    附加到一个流上面

    5

    void reattach();

    重新附加到一个相同的流上面。

    它是在对同一个游标流关闭后再打开的情况下使用。

    6

    void detach();

    从流中分离出来

    7

    bool next_row();

    读取下一条记录。如果有下一条记录,则返回真。如果没有下一条记录直接到达结尾,则返回假。

    8

    const otl_var_desc* describe(int& var_desc_len);

    解析输出字段的结构。参数为参数个数。相同的功能与otl_stream::describe_out_vars()。

    9

    void get(const int pos, char& c);

    通过位置读取一个字符

    10

    void get(const int pos, unsigned char& c);

    通过位置读取一个无符号字符

    11

    void get(const int pos, char* s);

    通过位置读取一个字符串

    12

    void get(const int pos, unsigned char* s);

    通过位置读取一个无符号字符串

    13

    void get(const int pos, int& n);

    通过位置读取一个32位整型

    14

    void get(const int pos, unsigned int& n);

    通过位置读取一个32位无符号整型

    15

    void get(const int pos, short int& n);

    通过位置读取一个短整型

    16

    void get(const int pos, long int& n);

    通过位置读取一个长整型

    17

    void get(const int pos, float& n);

    通过位置读取一个4字节长度的浮点型

    18

    void get(const int pos, double& n);

    通过位置读取一个8字节长度的浮点型

    19

    void get(const int pos, OTL_BIGINT& n);

    读取一个有符号的64位整型

    20

    void get(const int pos, OTL_STRING_CONTAINER& s);

    当定义了OTL_STL宏的时候读取string;

    当定义了OTL_STLPORT宏的时候读取string;

    当定义了OTL_ACE宏的时候读取ACE_TString;

    当定义了OTL_USER_DEFINED_STRING_CLASS_ON宏的时候,读取USER_DEFINED_STRING_CLASS;

    它还可以用来读取VARCHAR/CHAR/LONG/TEXT等大对象。

    21

    void get(const int pos, otl_long_string& s);

    读取otl_long_string类型

    22

    void get(const int pos, otl_long_string*& s);

    通过引用的指针读取otl_long_string类型。这个在读取大对象的时候性能比上面的更好。

    23

    void get(const int pos, otl_lob_stream*& s);

    仅在OCI8/9/10/11时候适用。

    从一个大对象流中读取大对象。需要在LOG_STREAM_MODE模式下。

    24

    void get(const int pos, otl_datetime& s);

    通过位置读取一个日期时间类型

    25

    bool is_null(const int pos);

    如果指定位置为空,则返回真。否则返回假。

    26

    void get(const char* var_name, char& c);

    需要定义OTL_STL或OTL_STLPORT或OTL_ACE宏。

    通过指定变量名读取一个字符

    27

    void get(const char* var_name, unsigned char& c);

    需要定义OTL_STL或OTL_STLPORT或OTL_ACE宏。

    通过指定变量读取一个无符号字符

    28

    void get(const char* var_name, char* s);

    需要定义OTL_STL或OTL_STLPORT或OTL_ACE宏。

    通过指定的变量读取一个字符串

    29

    void get(const char* var_name, unsigned char* s);

    需要定义OTL_STL或OTL_STLPORT或OTL_ACE宏。

    通过指定变量读取一个无符号字符串

    30

    void get(const char* var_name, int& n);

    需要定义OTL_STL或OTL_STLPORT或OTL_ACE宏。

    通过指定变量读取一个整型

    31

    void get(const char* var_name, unsigned int& n);

    需要定义OTL_STL或OTL_STLPORT或OTL_ACE宏。

    通过指定变量读取一个无符号整型

    32

    void get(const char* var_name, short int& n);

    需要定义OTL_STL或OTL_STLPORT或OTL_ACE宏。

    通过指定变量读取一个短整型

    33

    void get(const char* var_name, long int& n);

    需要定义OTL_STL或OTL_STLPORT或OTL_ACE宏。

    通过指定变量读取一个长整型

    34

    void get(const char* var_name, float& n);

    需要定义OTL_STL或OTL_STLPORT或OTL_ACE宏。

    通过指定变量读取一个4字节长度的浮点型

    35

    void get(const char* var_name, double& n);

    需要定义OTL_STL或OTL_STLPORT或OTL_ACE宏。

    通过指定变量读取一个8字节长度的浮点型

    36

    void get(const char* var_name, OTL_BIGINT& n);

    需要定义OTL_STL或OTL_STLPORT或OTL_ACE宏。

    通过指定变量读取一个64位长整型

    37

    void get(const char* var_name, OTL_STRING_CONTAINER& s);

    需要定义OTL_STL或OTL_STLPORT或OTL_ACE宏。

    在定义了OTL_STL的情况下读取一个std::string类型。可以用来读取VARCHAR/CHAR/TEXT等类型。

    38

    void get(const char* var_name, otl_long_string& s);

    需要定义OTL_STL或OTL_STLPORT或OTL_ACE宏。

    读取一个otl_long_string类型

    39

    void get(const char* var_name, otl_long_string*& s);

    需要定义OTL_STL或OTL_STLPORT或OTL_ACE宏。

    读取一个otl_long_string类型引用指针。在读取大对象的时候性能比较好。

    40

    void get(const char* var_name, otl_lob_stream*& s);

    需要定义OTL_STL或OTL_STLPORT或OTL_ACE宏。

    读取一个otl_lob_stream对象的引用指针

    41

    void get(const char* var_name, otl_datetime& s);

    需要定义OTL_STL或OTL_STLPORT或OTL_ACE宏。

    通过指定变量读取一个日期时间类型

    42

    bool is_null(const char* var_name);

    如果指定的变量为空,返回真,否则返回假。

  • 相关阅读:
    1124 vue路由配置初级实践&和npm run dev干嘛了
    1130 携程网焦点图+导航栏,flex布局实践
    1124 在vscode中快速创建vue模板
    122 携程网案例flex布局第三部分
    128 手撸轮播组件瞬时切换版本,布局部分
    1125 vscode自定义快捷键扩展选择单词等
    124 本地服务器搭建
    1128 defineProperty中getter和setter的用法
    2216 怎么快速打开powershell
    Visual Studio 2010的网站局域网发布功能(Publish)
  • 原文地址:https://www.cnblogs.com/fnlingnzb-learner/p/5903322.html
Copyright © 2020-2023  润新知