快速业务通道

Linux下使用C/C 访问数据库

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-17
一、什么是OCI?
开发基于Oracle数据库的应用程序,我们可以选择多种工具,不仅可以用一般的数据库开发技术,诸如ADO(ActiveX Data Objects)、ODBC(Open DataBase Connectivity)等等,同时,也可以用Oracle公司提供的专门的开发工具,诸如Pro C_C ,OCI(Oracle Call Intedace)等等.比较这几种方式,前者是通用技术,开发起来比较容易,但是有一个致命的弱点就是诸如ADO之类的通用技术的速度太慢,如果我们要开发管理海量数据的数据库,比如影像数据库,那么,这种速度我们是不能忍受的.而OCI虽然开发起来难度大一些,但是它的速度极快,是一种底层接口,几乎可以操纵Oracle数据库的任何对象.
二、OCI简介
OCI(Oracle Call Intedace,即0racle调用层接口)是Oracle公司提供的由头文件和库函数等组成的一个访问Oracle数据库的应用程序编程接口(application programming interface API),它允许开发人员在第三代编程语言(包括C, C , COBOL 与 FORTRAN)中通过SQL(Structure Query Language)来操纵Oracle数据库,OCI在一定程度上支持第三代编程语言(诸如C, C , COBOL 与 FORTRAN)的数据类型、语法等等.OCI的显著特点是全面支持Oracle的面向对象技术,同时OCI还具有如下的一些特点: 1)非常有利于应用程序的设计; 2)高度控制应用程序的执行; 3)允许开发人员应用已熟悉的第三代程序设计语言来应用OCI; 4)支持动态SQL; 5)几乎所有的Oracle的开发工具都支持OCI; 6)通过回调技术(callbacks)来实现动态绑定与定义; 7)通过OCI的描述函数可以获取Oracle数据库的各种参数; 8)增强了数组在DML(data manipulation language)语言中的应用; 拥有帝国一切,皆有可能。欢迎访问phome.netOCI接口支持Windows NT和Windows 95/98/2000/XP操作系统,它所支持的C语言编译器包括Borland C 和MiroSoft VisualC 等.在使用0CI开发Oralce数据库应用程序之前,应安装这些操作系统和C语言编译工具.在选择安装OCI开发工具包后,Oracle安装程序将0CI文件拷贝到oracle主目录内的以下子目录中: ..BIN:执行文件和帮助文件: ..OCIINCLUDE头文件;
三、开发前的注意事项
,为了防止某些动态链接库出问题,建议在安装了Oracle客户端的机器上进行开发、运行. 其次,使用OCI开发的程序,需要使用Oracle客户端的tnsnames.ora这个配置文件,在开发前需要使用netca来配置好相关内容. 第三,Linux下的系统环境变量需要设置好.需要设置的环境变量包括ORACLE_HOME、ORACLE_SID、TNS_ADMIN,其中TNS_ADMIN指定到tnsnames.ora所在的文件夹.
四、程序开发:
还是直接用代码说话吧 /*
* Common.h
*
* Created .: Mar 1, 2009
* Author: Steven Wee
*/

#ifndef COMMON_H_
#define COMMON_H_

#include <unistd.h>
#include <oci.h>
#include <ctype.h>

#include <string>
#include <iostream>
#include <vector>

#include <string.h>

using namespace std;

#endif /* COMMON_H_ */ 拥有帝国一切,皆有可能。欢迎访问phome.net
/*
* Exception.h
*
* Created .: Mar 1, 2009
* Author: Steven Wee
*/

#ifndef EXCEPTION_H_
#define EXCEPTION_H_

class Exception
{
public:
Exception(int errno);
virtual char * GetErrMsg() = 0;
virtual char * GetErrFunc() = 0;
virtual int GetErrNo() = 0;
protected:
int m_iErrNo;
char m_sErrBuff[512];
char m_sErrFunc[128];
};

#endif /* EXCEPTION_H_ */
/*
* Exception.cpp
*
* Created .: Mar 1, 2009
* Author: Steven Wee
*/
#include "Exception.h"

Exception::Exce

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号