项目中一直用MFC调ADO访问oracle
* ADO是一个COM组件,封装了对常用数据库的一般操作。
* 允许开发人员编写访问数据的代码而不用关心数据源是如何实现与访问驱动的,而只用关心到数据库的连接。
* 访问数据库的时候,关于SQL的知识不是必要的,但是特定数据库支持的SQL命令仍可以通过ADO中的命令对象(Command)来执行。
* 点我查看ADO
* 发现ADO编写的程序在(x86,64)和(xp,win7,winserver…)兼容方面不好,个人也不是很喜欢com(也许是个人水平有限–!)
因此找到一种替代工具ocilib
* ocilib是一个开源项目点我查看ocilib github
* ocilib特点如下(原汁原味官方介绍)
1. offers a rich, full featured and easy to use API
2. runs on all Oracle platforms
3. is written in pure ISO C code with native ISO C Unicode support
4. encapsulates OCI (Oracle Call Interface)
5. is the most complete available OCI wrapper
测试程序开发步骤如下
环境介绍:win7(64),vs2013,oracle11g client
配置ocilib:
1. 首先从网上下载ocilib,我使用的是3.12.1-windows版本,解压后目录如下,工程中需要使用include目录和lib[]目录,根据自己平台选择,这里使用lib[64]
- 配置步骤
- 将include目录下的ocilib.h拷入到项目文件目录
- 将lib[64]目录下的ociliba.lib拷到项目文件目录中,(注意后缀是a,原因最后解释),编码时头文件中使用预编译#pragma comment(lib, “ociliba.lib”) 导入静态库
- 将lib[64]目录下ociliba.dll拷到发布目录debug/release下
- demo编码
类OraclTools 继承 DBInterface接口,这里我定义了DBEntity类和DBInterface接口,主要是为了方便项目后续扩展其他数据库,只需给DBEntity对象设定对应参数,接口保持统一。
头文件DBTools.h
#pragma once
#define SUCC 1
#define FAIL 0
#include"DBInterface.h"
#include "ocilib.h"
#pragma comment(lib, "ociliba.lib")
class OraclTools : public DBInterface{