欢迎来到天天文库
浏览记录
ID:11526561
大小:585.00 KB
页数:38页
时间:2018-07-12
《otl数据库访问技术》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、OTL数据库访问技术北京神州数码思特奇信息技术股份有限公司研究院OTL应用开发OTL介绍OTL“流”的概念OTL的主要类OTL的使用OTL的编译OTL参考资料OTL介绍什么是OTL:OTL是Oracle,OdbcandDB2-CLITemplateLibrary的缩写,是一个操控关系数据库的C++模板库,它目前几乎支持所有的当前各种主流数据库,如下表所示:数据库访问接口支持版本OracleOCIOCI7、OCI8、OCI8i、OCI9i、OCI10gDB2CLIDB2CLIMSSQLServer、Sybase、Informix、MySQL、Interbase/Fire
2、bird、PostgreSQL、SQLite、SAP/DB、TimesTen、MSACCESSODBCODBC2.5、ODBC3.x备注:Oracle和DB2也可以由OTL间接使用ODBC的方式来进行操纵OTL的特点:优点(1).跨平台(2).运行效率高,与C语言直接调用数据库API相当(3).开发效率高,使用方便,繁在其内,简在其外,比ADO.net使用起来更简单,更简洁(4).部署容易,不需要ADO组件,不需要.netframework等缺点(1).只能在C++中使用OTL介绍OTL“流”的概念任何SQL语句,PL/SQL块的调用或者是存储过程调用都可以用“流”的
3、input/output[变量]来表现。使用SQL语句、PL/SQL块或者是存储过程调用,都可以看作是带输入输出流的黑盒。你可以不关心黑盒的内部工作(只需要依据黑盒的定义)。需要关注的是黑盒的输入输出线。OTL“流”的概念Example1.SELECT语句有用于WHERE子句的标量input变量。SELECT语句同时定义了输出列.潜在的输出列是矢量参数,因为SELECT语句可能返回多行。Example2.INSERT语句往表中写数据,即它有输入参数,其输入参数是标量.UPDATE语句亦是如此。Example3.DELETE从表中删除行,如需要输入删除条件,DELETE
4、语句需有输入参数,其输入参数是标量。Example4.存储过程可能含有input和(或)output参数。通常存储过程的参数是标量。有一个特例:存储过程返回一个游标(cursor)(ORACLE)或者是结果集(MSSQL、Sybase),此时output参数是矢量。Example5.任意一个PL/SQL块都可能有标量的输入或矢量的输出参数。OTL“流”的概念OTL“流”是缓存流从概念上讲,OTL“流”有两个独立的缓存:输入和输出。输入缓存由所有的输入变量共同组成。同样的,输出缓存由所有的输出变量共同组成。OTL“流”的操作(1).OTL“流”的操作与C++流一样,通过
5、操作符“<<”和“>>”来进行操作,流的引用在操作符的左边。s>>variable;s<>--从流到数据容器(变量)<<--从数据容器(变量)到流(2).OTL流需要用到OTL异常。即任何OTL流都潜在的会抛otl_exception类型的异常。为了截获异常并防止程序中断,请用相应try&catch块包装OTL代码段。OTL的主要类主要类包括:otl_stream,otl_connect,otl_exceptionotl_stream类otl_stream类是OTL“流”的概念的具体表现形式,任何通过输入/输出参数
6、使用SQL语句、PL/SQL块或者是存储过程调用,在C++的编程中都能通过otl_stream类来实现。其构造函数为:(1)forOracle7/8/9/10:otl_stream(constintarr_size,//流的缓存大小constchar*sqlstm,//SQL语句或PL/SQL块或存储过程otl_connect&db,//OTL数据库连接对象constchar*ref_cur_placeholder=0,//游标引用占位符名称constchar*sqlstm_label=0//SQL语句标签);OTL的主要类(2)forODBC/DB2-CLI:otl
7、_stream(constintarr_size,//流的缓存大小constchar*sqlstm,//SQL语句或PL/SQL块或存储过程otl_connect&db,//OTL数据库连接对象constintimplicit_select=otl_explicit_select,constchar*sqlstm_label=0//SQL语句标签);otl_connect类otl_connect类封装了一系列有关数据库连接的功能:建立连接、断开连接、事务提交、事务回滚等等。换言之,otl_connect是在C++编程中创建和使用数据库连接以及进行数据
此文档下载收益归作者所有