OTL翻译(10) -- OTL的流缓冲池】的更多相关文章

OTL的流缓冲池 一般来讲,流一般作为一个局部的变量被使用,当使用完毕后就立刻关闭,如果需要再次使用就需要再次的声明变量,如此循环.OTL流的缓冲池(内存池)是一个解决以往的流性能低下的一个机制.当流被关闭后,实际上流的相关变量被保存在一个流缓冲池里面,以便再利用. 每一个流在解析SQL或与数据库层打交道的时候都存在着巨大的资源开销.OTL通过流缓冲池机制来解决这个不必要的开销以提高性能. 当一个流“关闭”后,实际上,它被保存在一个流缓冲池里面.如果后面再需要一个类似的流,那么就只需要把流缓冲池…
OTL流的概念 任何的SQL语句.SQL语句块或存储过程,都是通过输入与输出变量进行处理参数与结果的. 如: 例1:一个SELECT语句把标量的输入变量作为WHERE子句部分的条件:同时SELECT部分则定义了输出的字段,并且在结果集为多行的情况下还是一个VECTOR结构. 例2:一个INSERT语句把数据写入数据库中,同样需要输入数据.UPDATE也是同样的道理. 例3:一个DELETE语句从表中删除数据,删除的条件同样需要通过参数输入. 例4:一个存储过程可能同时具有输入与输出参数.通过存储…
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 O…
相比于传统的C++类库而言,OTL更像是一个代码容器,里面复杂,但对外的接口简单.OTL在处理程序方面受到了STL的影响. OTL有一个模板框架,它实现了otl_stream的概念.该框架由模板类和内联函数组成.模板类把普通的类型作为参数,这些参数的类型提供了对数据库API的详细操作. 对于已有的数据库API,OTL提供如下的数据库API支持: ·       Oracle Call Interface for Oracle 7/8/8i /9i/10g/10gR2/11g (OCI7/8/8i…
声明绑定变量 本章节将详细的说明如何在otl_stream流里面声明绑定变量. SQL语句.SQL语句块或存储过程在程序里面使用的时候总是带有占位符.OTL里面带有一个小的解析器用来解析这些占位符,并且在内部进行变量的内存分配操作. 在ORACLE里面占位符的表示方法与其他数据库不同,在ORACLE里面的占位符是通过带有冒号的前缀来表示的,如::f1/:supervisor_name/:employee_id等,并且同一个占位符可能在同一个SQL语句里面使用多次. 在ODBC或DB2 CLI里面…
otl_stream Otl_stream是具体实现otl_stream_concept的类.任何的SQL语句.SQL语句块和存储过程都能通过otl_stream进行处理. 传统的数据库API处理SQL语句的时候,需要绑定变量与占位符,因此,程序员需要定义变量.解析SQL语句.调用绑定占位符的函数.把变量绑定到占位符上.执行SQL.读取输出的变量等等.如此循环.以上所有的这些操作在OTL里面的otl_stream类里面都是自动处理的,otl_stream类提供了与数据库交互自动化最大性能.该性能…
系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetCore开发博客项目 StarBlog - (3) 模型设计 基于.NetCore开发博客项目 StarBlog - (4) markdown博客批量导入 基于.NetCore开发博客项目 StarBlog - (5) 开始搭建Web项目 基于.NetCore开发博客项目 StarBlog - (6)…
otl_connect 这个类封装了连接的功能,如连接.断开连接.提交.回滚等.otl_connect也就是一个用来创建连接对象并进行管理的类. 序号 方法.变量 说明 1 int connected 数据库是否已经连接的标志. 该标志只是在数据库连接成功后才标志为1(成功).如果一个已经连接成功数据库的连接在长时间没有数据库操作的情况下,由数据库主动断开了连接,该标志不会改为.还是为1(真),所以为了保证该标志一直有效,需要为该标志建一个“心跳”,以判断数据库是否仍旧连接为真.如发送一个简单的…
otl_long_string/olt_long_unicode_string 这两个类主要用来处理大对象数据.从OTL4.0版本开始,otl_long_string还可以处理任何类型的RAW/BIANRY类型.下面列出了常见数据库的一些大对象类型: ·             Oracle 7: LONG, RAW, LONG RAW ·             Oracle 8, 8i, 9i, 10g, 11g: LONG, RAW, LONG RAW; CLOB, BLOB ·     …
说明 该文档说明的是4.0版本的ORACLE/ODBC和DB2-CLI模板库(OTL).OTL4.0(后面简称OTL)模板库是基于C++的模板的. OTL4.0是组合了C++的模板框架和OTL适配器.框架是一个简单的OTL_stream的概念,OTL适配器则是一个基于数据库API的经量级的类库,并且作为参数传给OTL的框架参数. OTL4.0仅通过otl_stream,otl_connect,otl_exception,olt_long_string和几个简单的ORACLE数据库的从模板框架和O…
常量的SQL语句 一个没有绑定变量的SQL语句.SQL语句块或是存储过程就被称为常量的SQL语句.OTL通过一个静态的函数来执行这样的SQL语句. 例如: // static otl_cursor::direct_exec() otl_cursor::direct_exec (db, // connect object "create table test_tab(f1 int, f2 varchar(30))" ); // create table otl_cursor::direc…
otl_exception 这个类是OTL用来抛出异常的类.如果数据库API返回一个非0的错误值,则OTL会将会抛出一个otl_exception的异常.一个otl_exception异常有可能是一个数据库错误或是一个OTL定义的错误. 序号 函数.成员变量 说明 1 char stm_text[2048 or OTL_EXCEPTION_STM_TEXT_SIZE] OTL异常里面SQL语句的前2047个字符.当设置了stream label(在otl_stream或open()函数里面的sq…
在用unixODBC连接MySQL的时候字符编码是由odbc支持的,不须要C++编译OTL的时候加上什么编译条件. 假设你的数据库使用的编码是UTF-8,你要从这个数据库读数据.并且还要将结果放到这个数据库,你能够在配置文件odbc.ini里面加以要求 [mysql_from] Description = Data Source to mysql_from for read config for scp_platfom Driver =MYSQL TraceFile = sql.log TDS_…
说明:C++中的文件流分为三种:文件输入流.文件输出流.文件输入/输出流,其对应的类分别为 ifstream.ofstream 和 fstream .由这三个类创建类对象,完成对文件的操作.其中文件的操作包括:打开.读写以及关闭. 注意:输入输出流中的输入与输出,是针对程序(也可以说是针对当前进程)来说的,文件的输入指将文件的内容输入到程序中,即读取文件;同理,输出即指将数据从程序中往文件中输出. 一.定义流对象 ifstream ifile; //定义一个文件输入流对象 ofstream of…
day2.8中提到 /* * +: * 做加法运算 * * 字符参与加法运算,其实是拿字符在计算机中存储的数据值来参与运算的 * 'A' 65(B 66...) * 'a' 97(b 98...) * '0' 48(1 49...) * * 字符串参与加法运算,其实做的不是加法运算,而是字符串的拼接 */ public class 字符参与运算 { public static void main(String[] args) { int A = 10; int B = 20; System.ou…
一.流操作概述 在默认情况下,当客户端调用服务时,服务只有在接收到完整的消息后才会被调用,同样,客户端只有在包含了调用结果的返回消息被完整接受时,才会解除对它的阻塞. 对于数据量小的消息,这种交换模式提供了简单的编程模型,因为接收消息的耗时较之处理消息本身而言是微不足道的.然而,一旦需要处理数据量较大的消息,如包含了多媒体内容.大文本或数据块的消息,如果每次都要等到完整接收消息之后才能解除阻塞,则未免不太现实. 为了解决这样的问题,WCF允许接收到(客户端或服务)在通过通道接收消息的同时,启动对…
1. 首先我们看看瀑布流的效果,如下: 2. 今天要介绍的瀑布流控件是:PinterestLikeAdapterView 项目地址:https://github.com/GDG-Korea/PinterestLikeAdapterView 使用方法类似于ListView下面是我使用该控件实现一个显示系统图片的简单应用:…
1. 输出最后一次提交的改变 这个命令,我经常使用它 来发送其他没有使用 git 的人来检查或者集成所修改的.它会输出最近提交的修改内容到一个 zip 文件中. git archive -o ../updated.zip HEAD $(git diff --name-only HEAD^) 2. 输出两个提交间的改变 类似的,如果你需要输出某两个提交间的改变时,你可以使用这个. git archive -o ../latest.zip NEW_COMMIT_ID_HERE $(git diff…
IO流 输入与输出[参照物是程序] 如果从键盘.文件.网络甚至是另一个进程(程序或系统)将数据读入到程序或系统中,称为输入 如果是将程序或系统中的数据写到屏幕.硬件上的文件.网络上的另一端或者是一个进程(程序或系统),称为输出 IO流的分类 根据数据流向不同分为:输入流和输出流 输入流: 程序可以从中读取数据的流 输出流: 程序能向其中写入数据的流 根据数据处理类不同分为:字节流和字符流 字节流:以字节为单位传输数据的流 字符流:以字符为单位传输数据的流 注:数据所在文件若能用win下记事本打开…
缓冲流和正常流的使用大致相同,缓冲流效率更高. package day10_io_fileWrite_Read.buffer_stream; import java.io.*; /* * BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符.数组和字符串的高效写入. * BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符.数组和行的高效读取. */ public class BufferedStream { public static…
一.FileWriter 小节: 1)FileWriter fw = new FileWriter("a.txt",true);//表示追加写入,默认是false.正常情况:执行多次程序输出会被覆盖.写追加true后会在之前基础上写入. 2)\n可以实现换行,但是windows系统自带的记事本打开并没有换行,这是为什么呢?因为windows识别的换行不是\n,而是\r\n * windows:\r\n * linux:\n * mac:\r3) // String(char[] val…
一.stream的应用场景 for遍历的冗余场景:  stream的写法: 二.获取Stream流的常用方式 三.Stream的map映射方法 更简单的写法: 四.Stream的filter过滤方法 五.Stream的forEach遍历方法[无需返回值] 六.并发的Stream流 概念:  单线程和并发:  …
TCP限流是因为让接收方充分接受完消息,保证数据安全,不会丢失 一.窗口机制介绍 发送端和接收端都拥有一个窗口,当发送端发送数据时,落进窗口的数据被发送,当接受端接受数据时,落进接收端窗口的数据将会被接受.由此可见可以通过窗口大小限制流量 二.滑动窗口技术(限流使用到的技术) TCP滑动窗口技术通过动态改变窗口大小来调节两台主机间的数据传输.每个TCP/IP主机支持全双工数据传输,因此TCP有两个滑动窗口: 一个用于接收数据,另一个用于发送数据.TCP使用确定技术,其确定号指的是下一个所期待字节…
FileWriter 用于写入字符流.要写入原始字节流,请考虑使用 FileOutputStream. io流相关文档: https://www.cnblogs.com/albertrui/p/8361643.html…
LTE用户文档 (如有不当的地方,欢迎指正!) 16 Network Attachment(网络连接)   正如前面章节 Basic simulation program 所述,连接用户到基站时通过调用 LteHelper::Attach 函数实现的.   有两种可能的网络连接方式,一种是“手动连接”,另一种方式更加“自动”.本节将讲述这两种方式.   16.1 Manual attachment(手动连接) 该方法使用前面提及的 LteHelper::Attach 函数.在早期版本的LTE模块…
1 OTL简介 OTL 是 Oracle, Odbcand DB2-CLI Template Library 的缩写,是一个C++编译中操控关系数据库的模板库,它目前几乎支持当前所有的各种主流数据库,例如Oracle, MS SQL Server, Sybase, Informix, MySQL, DB2, Interbase /Firebird, PostgreSQL, SQLite, SAP/DB, TimesTen, MS ACCESS等等. OTL中直接操作Oracle主要是通过Orac…
OTL介绍:OTL 是 Oracle, Odbc and DB2-CLI Template Library 的缩写,是一个C++编译中操控关系数据库的模板库,它目前几乎支持所有的当前各种主流数据库,例如Oracle, MS SQL Server, Sybase, Informix, MySQL, DB2, Interbase / Firebird, PostgreSQL, SQLite, SAP/DB, TimesTen, MS ACCESS等等.OTL中直接操作Oracle主要是通过Oracl…
十.流 10.1 缓冲流 10.1.1 概述                 缓冲流是对4个基本的FileXxx流的增强,所以也是4个流,按照数据类型进行分类                         字节缓冲流:BufferedInputStream,BufferedOutputStream                         字符缓冲流:BufferedReader,BufferedWriter                      缓冲流的基本原理,是在创建流对象时,…
声明绑定变量 本章节将详细的说明如何在otl_stream流里面声明绑定变量. SQL语句.SQL语句块或存储过程在程序里面使用的时候总是带有占位符.OTL里面带有一个小的解析器用来解析这些占位符,并且在内部进行变量的内存分配操作. 在ORACLE里面占位符的表示方法与其他数据库不同,在ORACLE里面的占位符是通过带有冒号的前缀来表示的,如::f1/:supervisor_name/:employee_id等,并且同一个占位符可能在同一个SQL语句里面使用多次. 在ODBC或DB2 CLI里面…
花了两天时间尝试按照自己的话翻译了一下stream模块,以下内容皆翻译于:https://nodejs.org/api/stream.html. 目录 1  Stream(流)     1.1     这篇文档的组织方式     1.2    stream的种类 1.2.1   对象模式 1.2.2  Buffering     1.3    API for Stream Consumers 1.3.1  Writable Streams 1.3.1.1 Class: stream.Writab…