摘要: otl_stream的构造函数或成员函数open的第四个参数const int implicit_select 默认是otl_explicit_select。当使用存储过程时,必须指定为otl_implicit_select。 以上是OTL官方的说明,在实际使用中,我碰到过使用SQL SERVER2 阅读全文
posted @ 2016-09-24 15:21 Boblim 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 要开启OTL的64位长整数支持,必须先定义宏 或者 同时,因为OTL只是一个头文件,具体的64位长整数支持还得靠底层,对于底层驱动本身就支持64位长整数的情况,就不需要定义其他宏了,而对于那些底层驱动不支持64位长整数的情况,例如OCI版本小于11.2或是ODBC本身不支持64位整数,则需要额外定义 阅读全文
posted @ 2016-09-24 15:20 Boblim 阅读(649) 评论(0) 推荐(0) 编辑
摘要: OTL stream read iterator 这个类是一个像传统的JDBC中的getter()操作一样扩展了OTL流的模板类。它现在还不支持UNICODE字符集。它对otl_refcur_stream和otl_stream的使用基本相同(在ORACLE8版本里面)。 模板的定义如下: templ 阅读全文
posted @ 2016-09-24 15:18 Boblim 阅读(749) 评论(0) 推荐(0) 编辑
摘要: OTL的流缓冲池 一般来讲,流一般作为一个局部的变量被使用,当使用完毕后就立刻关闭,如果需要再次使用就需要再次的声明变量,如此循环。OTL流的缓冲池(内存池)是一个解决以往的流性能低下的一个机制。当流被关闭后,实际上流的相关变量被保存在一个流缓冲池里面,以便再利用。 每一个流在解析SQL或与数据库层 阅读全文
posted @ 2016-09-24 15:17 Boblim 阅读(570) 评论(0) 推荐(0) 编辑
摘要: 常量的SQL语句 一个没有绑定变量的SQL语句、SQL语句块或是存储过程就被称为常量的SQL语句。OTL通过一个静态的函数来执行这样的SQL语句。 例如: // static otl_cursor::direct_exec() otl_cursor::direct_exec (db, // connect object "create table test_tab(f1 ... 阅读全文
posted @ 2016-09-24 15:16 Boblim 阅读(944) 评论(0) 推荐(0) 编辑
摘要: otl_long_string/olt_long_unicode_string 这两个类主要用来处理大对象数据。从OTL4.0版本开始,otl_long_string还可以处理任何类型的RAW/BIANRY类型。下面列出了常见数据库的一些大对象类型: · Oracle 7: LONG, RAW, L 阅读全文
posted @ 2016-09-24 15:15 Boblim 阅读(902) 评论(0) 推荐(0) 编辑
摘要: otl_exception 这个类是OTL用来抛出异常的类。如果数据库API返回一个非0的错误值,则OTL会将会抛出一个otl_exception的异常。一个otl_exception异常有可能是一个数据库错误或是一个OTL定义的错误。 序号 函数、成员变量 说明 1 char stm_text[2 阅读全文
posted @ 2016-09-24 15:14 Boblim 阅读(1231) 评论(0) 推荐(0) 编辑
摘要: otl_connect 这个类封装了连接的功能,如连接、断开连接、提交、回滚等。otl_connect也就是一个用来创建连接对象并进行管理的类。 序号 方法、变量 说明 1 int connected 数据库是否已经连接的标志。 该标志只是在数据库连接成功后才标志为1(成功)。如果一个已经连接成功数 阅读全文
posted @ 2016-09-24 15:13 Boblim 阅读(2383) 评论(0) 推荐(0) 编辑
摘要: 声明绑定变量 本章节将详细的说明如何在otl_stream流里面声明绑定变量。 SQL语句、SQL语句块或存储过程在程序里面使用的时候总是带有占位符。OTL里面带有一个小的解析器用来解析这些占位符,并且在内部进行变量的内存分配操作。 在ORACLE里面占位符的表示方法与其他数据库不同,在ORACLE 阅读全文
posted @ 2016-09-24 15:10 Boblim 阅读(2093) 评论(0) 推荐(0) 编辑
摘要: otl_stream Otl_stream是具体实现otl_stream_concept的类。任何的SQL语句、SQL语句块和存储过程都能通过otl_stream进行处理。 传统的数据库API处理SQL语句的时候,需要绑定变量与占位符,因此,程序员需要定义变量、解析SQL语句、调用绑定占位符的函数、 阅读全文
posted @ 2016-09-24 15:09 Boblim 阅读(4942) 评论(0) 推荐(0) 编辑
摘要: 相比于传统的C++类库而言,OTL更像是一个代码容器,里面复杂,但对外的接口简单。OTL在处理程序方面受到了STL的影响。 OTL有一个模板框架,它实现了otl_stream的概念。该框架由模板类和内联函数组成。模板类把普通的类型作为参数,这些参数的类型提供了对数据库API的详细操作。 对于已有的数 阅读全文
posted @ 2016-09-24 15:08 Boblim 阅读(469) 评论(0) 推荐(0) 编辑
摘要: OTL流的概念 任何的SQL语句、SQL语句块或存储过程,都是通过输入与输出变量进行处理参数与结果的。 如: 例1:一个SELECT语句把标量的输入变量作为WHERE子句部分的条件;同时SELECT部分则定义了输出的字段,并且在结果集为多行的情况下还是一个VECTOR结构。 例2:一个INSERT语 阅读全文
posted @ 2016-09-24 15:06 Boblim 阅读(588) 评论(0) 推荐(0) 编辑
摘要: 说明 该文档说明的是4.0版本的ORACLE/ODBC和DB2-CLI模板库(OTL)。OTL4.0(后面简称OTL)模板库是基于C++的模板的。 OTL4.0是组合了C++的模板框架和OTL适配器。框架是一个简单的OTL_stream的概念,OTL适配器则是一个基于数据库API的经量级的类库,并且 阅读全文
posted @ 2016-09-24 15:05 Boblim 阅读(647) 评论(0) 推荐(0) 编辑