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);

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

otl翻译(11) -- OTL的迭代器的更多相关文章

  1. OTL翻译(10) -- OTL的流缓冲池

    OTL的流缓冲池 一般来讲,流一般作为一个局部的变量被使用,当使用完毕后就立刻关闭,如果需要再次使用就需要再次的声明变量,如此循环.OTL流的缓冲池(内存池)是一个解决以往的流性能低下的一个机制.当流 ...

  2. OTL翻译(3) -- OTL的主要类

    相比于传统的C++类库而言,OTL更像是一个代码容器,里面复杂,但对外的接口简单.OTL在处理程序方面受到了STL的影响. OTL有一个模板框架,它实现了otl_stream的概念.该框架由模板类和内 ...

  3. OTL翻译(2) -- OTL流的概念

    OTL流的概念 任何的SQL语句.SQL语句块或存储过程,都是通过输入与输出变量进行处理参数与结果的. 如: 例1:一个SELECT语句把标量的输入变量作为WHERE子句部分的条件:同时SELECT部 ...

  4. OTL翻译(4) -- otl_stream类

    otl_stream Otl_stream是具体实现otl_stream_concept的类.任何的SQL语句.SQL语句块和存储过程都能通过otl_stream进行处理. 传统的数据库API处理SQ ...

  5. OTL翻译(6) -- otl_connect类

    otl_connect 这个类封装了连接的功能,如连接.断开连接.提交.回滚等.otl_connect也就是一个用来创建连接对象并进行管理的类. 序号 方法.变量 说明 1 int connected ...

  6. OTL翻译(5) -- otl_stream流相关绑定变量

    声明绑定变量 本章节将详细的说明如何在otl_stream流里面声明绑定变量. SQL语句.SQL语句块或存储过程在程序里面使用的时候总是带有占位符.OTL里面带有一个小的解析器用来解析这些占位符,并 ...

  7. OTL翻译(1) -- 说明

    说明 该文档说明的是4.0版本的ORACLE/ODBC和DB2-CLI模板库(OTL).OTL4.0(后面简称OTL)模板库是基于C++的模板的. OTL4.0是组合了C++的模板框架和OTL适配器. ...

  8. OTL翻译(9) --常量的SQL语句

    常量的SQL语句 一个没有绑定变量的SQL语句.SQL语句块或是存储过程就被称为常量的SQL语句.OTL通过一个静态的函数来执行这样的SQL语句. 例如: // static otl_cursor:: ...

  9. OTL翻译(8) -- otl_long_string/otl_long_unicode_string类

    otl_long_string/olt_long_unicode_string 这两个类主要用来处理大对象数据.从OTL4.0版本开始,otl_long_string还可以处理任何类型的RAW/BIA ...

随机推荐

  1. 基于 Laravel 开发博客应用系列 —— Homestead 和 Laravel 安装器

    1.Homestead 从主机操作系统的控制台中(Windows 中被称作命令提示符,Linux 中被称作终端),你可以轻松通过不带参数的homestead 命令查看所有有效的 Homestead 命 ...

  2. [CodeChef - STREETTA] The Street 李超线段树

    大致题意: 给出两个序列A,B,A初始为负无穷,B初始为0,有三种操作 1.在A上区间[u,v]上加一个等差数列,取与原本A序列的最大值. 2.在B上区间[u,v]上加一个等差数列. 3.给出一个点X ...

  3. Object-c和Java中的代理

    代理模式的核心思想就是一个类想做一件事情(函数),但它不去亲自做(实现),而是通过委托别的类(代理类)来完成. 代理模式的优点: 1.可以实现传值,尤其是当一个对象无法直接获取到另一个对象的指针,又希 ...

  4. JAVAEE——宜立方商城11:sso登录注册功能实现、通过token获得用户信息、Ajax跨域请求(jsonp)

    1. 学习计划 第十一天: 1.sso注册功能实现 2.sso登录功能实现 3.通过token获得用户信息 4.Ajax跨域请求(jsonp) 2. Sso系统工程搭建 需要创建一个sso服务工程,可 ...

  5. JPG图片EXIF信息提取工具exif

    JPG图片EXIF信息提取工具exif   有相机生成的JPG图片(如照片)都包含有EXIF信息.这些信息包括拍照所使用的设备.地理位置.拍摄时间等敏感信息.Kali Linux内置了EXIF信息提取 ...

  6. android Handler机制 消息机制

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 循环器Looper 管理该线程内对象之间的消息交换  messageExchange 循 ...

  7. Windows 安装 Jenkins 2.6

    最近都是Windows下干活啊... 一.下载和安装 官网地址:https://jenkins.io/index.html,选择了2.X系列的Windows版本,自动在浏览器下载到了jenkins-2 ...

  8. bzoj 3473 后缀自动机多字符串的子串处理方法

    后缀自动机处理多字符串字串相关问题. 首先,和后缀数组一样,用分割符连接各字符串,然后建一个后缀自动机. 我们定义一个节点代表的字符串为它原本代表的所有串去除包含分割符后的串.每个节点代表的字符串的数 ...

  9. android显示TextView文字的倒影效果

    今天记录一下TextView的倒影效果,显示一串文字,然后在文字的下方显示出它的倒影,先上效果图: 最重要的就是View中getDrawingCache()方法,该方法可以获取cache中的图像,然后 ...

  10. Codeforces Round #279 (Div. 2) B - Queue 水题

    #include<iostream> #include<mem.h> using namespace std; ],q[]; int main() { int n,x,y; m ...