基于Oracle OCI的数据访问C语言接口ORADBI(上)

ORADBI是我在Oracle OCI(Oracle 调用接口)基础上开发的,支持Oracle8i、9i、10g等数据库。根据Oracle公司的介绍:OCI是如此可靠,以至于Oracle数据库中的每一条SQL语句都通过OCI来执行。当应用程序开发人员需要面向Oracle数据库服务器的最强大的接口时,他们将调用 Oracle调用接口(OCI)。OCI提供了对所有Oracle数据库功能的最全面的访问。OCI API中包含了最新的性能、可伸缩性和安全性特性。

采用OCI的最大好处就是:它是最切近Oracle底层的技术,因此,效率是最高的。同时,它是跨平台的。因此,在我给出的ORADBI库,除了OCI之外,没有其他外部依赖,稍加改动,就可以移植到非Windows平台上或其他嵌入式平台。

然而,OCI也比较不容易使用。它的功能之强,粒度之细,语法之烦琐,都不适合今天熟悉了快速开发模式的人员使用。然而,OCI的高效,直接根植于数据库核心,跨平台的语言特性,是其他如OO4O、OLEDB、ADO等COM方式不具备的。我最初开发Oralce数据库是4年以前,使用的是OO4O。直到最近,使用OCI成了我的爱好。于是,写了一套OCI的Helper库,方便OCI的使用。我不敢说是OCI的Wrapper库,因为我没能力包装OCI的方方面面。然而,我的ORADBI已经足够我(可能也包括你们)日常使用了。我就是用这套ORADBI操纵BLOB等大数据字段的。

公布这套ORADBI库,没有任何商业上的风险:我拥有这个库的全部版权,任何个人或团体可以为任何目的免费地、无限制地使用ORADBI库,前提是不能声明对ORADBI库的版权。对使用ORADBI库所造成的任何后果,我不负任何责任。如果这套软件对您的工作产生了很大的帮助,我不拒绝任何您的资助。

好了,让我们概览一下这个库,它包含下列文件:

.h文件                 .c文件
oradbi.h*             oradbi.c
oracol.h              oracol.c
oraconn.h           oraconn.c
oradate.h            oradate.c
oraerr.h               oraerr.c
oraparam.h         oraparam.c

orarows.h            orarows.c
orastmt.h             orastmt.c
oratype.h

unistd.h
list.h                    list.c
hashmap.h        hashmap.c

其中,oradbi.h是你唯一需要包含的头文件。当把ORADBI作为动态库连接到你的工程里使用时,你在你的项目里加入类似下面的代码:

// test.cpp
#include "../oradbi/oradbi.h"

#ifdef _DEBUG
  #pragma comment(lib, "../oradbi/debug/oradbid.lib")
#else
  #pragma comment(lib, "../oradbi/release/oradbi.lib")
#endif

时间: 2024-09-15 22:30:02

基于Oracle OCI的数据访问C语言接口ORADBI(上)的相关文章

基于Oracle OCI的数据访问C语言接口ORADBI .

  基于Oracle OCI的数据访问C语言接口ORADBI cheungmine@gmail.com Mar. 22, 2008   ORADBI是我在Oracle OCI(Oracle 调用接口)基础上开发的,支持Oracle8i.9i.10g等数据库.根据Oracle公司的介绍:OCI是如此可靠,以至于Oracle数据库中的每一条SQL语句都通过OCI来执行.当应用程序开发人员需要面向Oracle数据库服务器的最强大的接口时,他们将调用 Oracle调用接口(OCI).OCI提供了对所有O

基于Oracle OCI的数据访问C语言接口ORADBI(下)

/*====================================================================== column Functions - oracol.c ======================================================================*/ /* returns column data type */ ORADB_CALL1(const char*) ORA_column_get_name

OledbHelper ,c#访问OLEDB数据源的一个数据访问层公共接口文件

问题描述 usingSystem;usingSystem.Collections.Generic;usingSystem.Text;//引入必须的命名空间usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Configuration;namespaceDAL{publicclassSqlHelper{#region静态似有变量///<summary>///SqlConnection对象实例///</summary>priv

ADO数据访问模型初学者入门

ado|初学|访问|数据 ADO(ActiveXDataObjects)是Microsoft提供和建议使用的新型的数据访问接口,具体实现为Automation.这样,程序员可以在各种支持Automation的开发环境下方便地访问ADO对象,如VisualBasic.VisualC++.VisualJ++及Delphi等.ADO被实现为OLEDB之上的一个薄层,这使得ADO可以有更快的访问速度,更易使用,同时更节省资源.值得注意的是,对于VisualStudio6.0的用户而言,现在提供的ADO2

.NET 数据访问架构指南(一)

访问|架构|数据 概述:本文提供了在多层.NET应用程序中实施基于ADO.NET的数据访问层的指导原则.其重点是一组通用数据访问任务和方案,并指导你选择最合适的途径和技术(68张打印页). 目录 ADO.NET简介 管理数据库链接 错误处理 性能 通过防火墙建立链接 处理 BLOBs 事务处理 数据分页 简介 如果你在为.NET应用程序设计数据访问层,那么就应该把 Microsoft ADO.NET用作数据访问模型.ADO.NET扩展丰富,并且支持结合松散的数据访问需求.多层Web应用程序及We

利用Dojo Data开发统一的数据访问模型

目前,企业内部的数据量正快速膨胀,客户端和服务器端之间交换的数据格式也是多种多样.由于 Web2.0.RIA 的快速发展,在客户端处理数据逐渐成为一种趋势,但是基于 XMLHTTPRequest 的一般 Ajax 客户端程序必须由 Web 开发人员自己编写处理各种数据格式的代码.这样,不仅加重了客户端逻辑的复杂性,而且降低了程序的可维护性和可扩展性.而 Dojo Data 库旨在为不同的数据格式提供一种统一的数据访问模型,使得数据的读写都采用统一的接口,从而有利于程序的移植和维护.通过阅读本文读

Dojo Data Stor“.NET研究”e——统一数据访问接口

无论在传统的桌面应用还是在主流的互联网应用中,数据始终占据着软件应用中的核心地位.当下,web2.0已经是一个让人们耳熟能详的词汇,而由此带来的数据的开放与共享,引领我们走入了海量数据时代.在今天的互联网上,数据的交互几乎成为了我们的终极诉求,可随之而来的数据多样性,信息的分布式存储及松耦合,以及数据量的几何级规模的膨胀也带来了数据组织上的难度的增大,与此同时,伴随着Ajax, RIA及面向服务的网络应用的发展,其所要求的客户端数据处理逻辑的复杂性不断增加,使得开发难度不断加大. 出于简化数据处

一起谈.NET技术,Dojo Data Store——统一数据访问接口

无论在传统的桌面应用还是在主流的互联网应用中,数据始终占据着软件应用中的核心地位.当下,web2.0已经是一个让人们耳熟能详的词汇,而由此带来的数据的开放与共享,引领我们走入了海量数据时代.在今天的互联网上,数据的交互几乎成为了我们的终极诉求,可随之而来的数据多样性,信息的分布式存储及松耦合,以及数据量的几何级规模的膨胀也带来了数据组织上的难度的增大,与此同时,伴随着Ajax, RIA及面向服务的网络应用的发展,其所要求的客户端数据处理逻辑的复杂性不断增加,使得开发难度不断加大. 出于简化数据处

基于HTTP 的数据访问

   除了XML 技术之外,Microsoft SQL Server 2000 的开发者们也把通过HTTP 访问的特性(HTTP access9 作为SQL Server 2000 的一个核心特性.这样用户完全可以把SQL Server 放到一个URL 上了,从而保证开发人员和潜在的最终用户都能简单地通过一个URL 来访问SQL Server. 本节我们主要介绍以下三个问题: 如何创建虚拟目录 HTTP 的语法 HTTP 的访问能力 20.4.1 创建虚拟目录    在使用HTTP 访问SQL