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); |
如果指定的变量为空,返回真,否则返回假。 |
otl翻译(11) -- OTL的迭代器的更多相关文章
- OTL翻译(10) -- OTL的流缓冲池
OTL的流缓冲池 一般来讲,流一般作为一个局部的变量被使用,当使用完毕后就立刻关闭,如果需要再次使用就需要再次的声明变量,如此循环.OTL流的缓冲池(内存池)是一个解决以往的流性能低下的一个机制.当流 ...
- OTL翻译(3) -- OTL的主要类
相比于传统的C++类库而言,OTL更像是一个代码容器,里面复杂,但对外的接口简单.OTL在处理程序方面受到了STL的影响. OTL有一个模板框架,它实现了otl_stream的概念.该框架由模板类和内 ...
- OTL翻译(2) -- OTL流的概念
OTL流的概念 任何的SQL语句.SQL语句块或存储过程,都是通过输入与输出变量进行处理参数与结果的. 如: 例1:一个SELECT语句把标量的输入变量作为WHERE子句部分的条件:同时SELECT部 ...
- OTL翻译(4) -- otl_stream类
otl_stream Otl_stream是具体实现otl_stream_concept的类.任何的SQL语句.SQL语句块和存储过程都能通过otl_stream进行处理. 传统的数据库API处理SQ ...
- OTL翻译(6) -- otl_connect类
otl_connect 这个类封装了连接的功能,如连接.断开连接.提交.回滚等.otl_connect也就是一个用来创建连接对象并进行管理的类. 序号 方法.变量 说明 1 int connected ...
- OTL翻译(5) -- otl_stream流相关绑定变量
声明绑定变量 本章节将详细的说明如何在otl_stream流里面声明绑定变量. SQL语句.SQL语句块或存储过程在程序里面使用的时候总是带有占位符.OTL里面带有一个小的解析器用来解析这些占位符,并 ...
- OTL翻译(1) -- 说明
说明 该文档说明的是4.0版本的ORACLE/ODBC和DB2-CLI模板库(OTL).OTL4.0(后面简称OTL)模板库是基于C++的模板的. OTL4.0是组合了C++的模板框架和OTL适配器. ...
- OTL翻译(9) --常量的SQL语句
常量的SQL语句 一个没有绑定变量的SQL语句.SQL语句块或是存储过程就被称为常量的SQL语句.OTL通过一个静态的函数来执行这样的SQL语句. 例如: // static otl_cursor:: ...
- OTL翻译(8) -- otl_long_string/otl_long_unicode_string类
otl_long_string/olt_long_unicode_string 这两个类主要用来处理大对象数据.从OTL4.0版本开始,otl_long_string还可以处理任何类型的RAW/BIA ...
随机推荐
- 洛谷P3605 [USACO17JAN] Promotion Counting 晋升者计数 [线段树合并]
题目传送门 Promotion Counting 题目描述 The cows have once again tried to form a startup company, failing to r ...
- JAVAEE——BOS物流项目14:Linux部署(安装jdk、tomcat、mySQL)和扩展资料
1 学习计划 1.Linux部署 n 安装jdk n 安装tomcat n 安装MySQL n 将项目发布到tomcat 2.扩展资料 2 Linux部署 2.1 安装jdk 第一步:获取Linux系 ...
- [HDU6198]number number number
题目大意: 给定一个数k表示你可以从包括0的斐波那契数列中任取k个数,得到它们的和.求最小的不能得到的自然数. 思路: 打表找规律,可以发现答案为f(2k+3)-1,然后用公式f(i)=f(i/2)* ...
- 2013年JavaScript开发人员调查结果
JavaScript开发人员调查现在已经结束,一如既往社区对结果进行了进一步分析: 总结(汉语) 原始数据(电子表格) 2012年结果 51%的被参与者写客户端代码,而28%的人说他们编写服务器端代码 ...
- 【ACM-ICPC 2018 徐州赛区网络预赛】E. End Fantasy VIX 血辣 (矩阵运算的推广)
Morgana is playing a game called End Fantasy VIX. In this game, characters have nn skills, every ski ...
- ASP.NET 构建高性能网站 第1篇
网站优化需要考虑的方面 在用ASP.NET开发网站的时候,性能是永远需要考虑和关注的问题,性能不仅仅只是程序代码执行时候的速度,而是涉及到方方面面的东西. 就拿ASP.NET的一个请求来讲,从浏览器向 ...
- 利用Everything开启http服务测试移动端浏览器环境
一.Everything 简介 Everything本身是一款小巧的文件搜索神器,可以快速的搜索电脑中的文件,速度非常快. 二.使用Everything的http服务 在做移动端浏览器页面时,有时需要 ...
- Jenkins搭建.NET自动编译测试与发布环境
本文地址: http://blog.csdn.net/wangjia184/article/details/18365553 操作系统Windows, 确保需要的.NET Framework已经安装 ...
- C#程序集系列11,全局程序集缓存
全局程序集缓存(GAC:Global Assembly Cache)用来存放可能被多次使用的强名称程序集.当主程序需要加载程序集的时候,优先选择到全局程序集缓存中去找寻需要的程序集. 为什么需要全局程 ...
- MVC中使用AngularJS-01,基本
Angularjs是一个前端的Javascript MVC 库和框架,使前端得到更好的设计.维护和测试.它的核心特性有:MVC.双向数据绑定.指令和语义化标签.模块化工具.依赖注入.HTML模板,以及 ...