- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OTL技术应用
OTL技术应用?什么是OTL:OTL 是 Oracle, Odbc and DB2-CLI TemplateLibrary 的缩写,是一个操控关系数据库的C++模板库,它目前几乎支持所有的当前各种主流数据库,如下表所示:数据库访问接口支持版本OracleOCIOCI7、OCI8、OCI8i、OCI9i、OCI10gDB2CLIDB2 CLIMS SQL Server、Sybase、Informix、MySQL、 Interbase/Firebird、PostgreSQL、SQLite、SAP/DB、TimesTen、MS ACCESSODBCODBC2.5、ODBC3.x?Oracle和DB2也可以由OTL间接使用ODBC的方式来进行操纵。OTL中直接操作Oracle主要是通过Oracle提供的OCI接口进行,依赖于Oracle客户端。?OTL使用简单,只要头文件中包含有: #include “otlv4.h” 就可,实际上整个OTL就一个“.H”的文件,使用起来极为的方便。?优点(1).跨平台(2).运行效率高,与C语言直接调用数据库API相当(3).开发效率高,使用方便,繁在其内,简在其外,比??? ADO.net使用起来更简单,更简洁(4).部署容易,不需要ADO组件,不需要.net ??? framework 等缺点(1).只能在C++中使用?OTL的主要类主要类包括:otl_stream、otl_connect、otl_exception?otl_stream类??? otl_stream类是OTL“流”的概念的具体表现形式,任何通过输入/输出参数使用SQL语句、PL/SQL 块或者是存储过程调用,在C++的编程中都能通过otl_stream类来实现。??????? 其构造函数为:?? (1)for Oracle 7/8/9/10: ?? otl_stream(const int arr_size, // 流的缓存大小????????????????????? const char* sqlstm, // SQL语句或PL/SQL块或存储过程 ????????????????????????????????????????? otl_connect db, // OTL数据库连接对象?????????????????????? const char* ref_cur_placeholder=0, // 游标引用占位符名称??? ?????????????????????? const char* sqlstm_label=0 // SQL 语句标签);?(2)forODBC/DB2-CLI: ? otl_stream(const int arr_size,// 流的缓存大小?????????? constchar* sqlstm,// SQL语句或PL/SQL块或存储过程?????????????????????????????? otl_connect db,// OTL数据库连接对象? ????????? const int implicit_select=otl_explicit_select ,? ????????? const char* sqlstm_label=0//SQL 语句标签);? OTL流构造函数,负责创建otl_stream对象并调用open()(解析sql语句)方法。? otl_stream的性能主要被缓冲区大小arr_size一个参数控制。缓冲区大小定义了插入表的逻辑行以及与数据库一次往反交互(one round-trip to the database)过程中从表或视图中查询的逻辑行。(3)void set_commit(int auto_commit=0); ? 设置流的auto_commit标志。默认情况下,该标志被置1,即当输出缓冲区刷新时,当前的事务被自动提交。? 注意流的auto_commit标志和数据库的自动提交模型没有任何关系。(4)void set_flush(const bool auto_flush=true);? 设置auto_flush标志。默认情况下auto_flush的值为true, 即如果缓冲区出现脏数据则在流的析构函数中刷新缓冲区。如果自动刷新标志被关闭,则需要使用close()方法或者flush()方法对流进行刷新。? 注意该函数仅仅能够设置流的析构函数中是否自动刷新,并不是通常意义上的缓冲区刷新。(5)voidflush(void); ? 刷新流的输出缓冲区。当输出缓冲区被填满时,缓冲区将被自动刷新。如果流的auto_commit标志被置上,则在刷新完毕后当前事务被提交。?otl_connect类otl_connect类封装了一系列有关数据库连接的功
您可能关注的文档
最近下载
- 医院信息网络安全培训PPT课件.pptx
- 2025年前列腺科普试题及答案.docx
- 立式叶片排渣过滤机-中国化工设备网.doc
- 20250508 北京大学DeepSeek系列06:DeepSeek私有化部署和一体机.pptx VIP
- 【7上英YL】芜湖市2024-2025学年七年级上学期期中考试英语试卷.pdf VIP
- 屋面瓦及檩条拆除安全方案.doc
- Schneider Electric施耐德Easy Altivar ATV610 变频器编程手册(中文).pdf VIP
- NB∕T34024-2024生物质成型燃料质量要求及分级.docx VIP
- STM32F1开发标准教程-教学大纲、授课计划.docx
- 新语境幼儿园教师专业能力等级与评定.pdf VIP
文档评论(0)