ACCI概述¶
神通c++调用接口(ACCI)是一个应用程序编程接口(API),它提供c++应用程序以供访问神通数据库中的数据。ACCI使c++程序员能够使用完整的操作神通数据库,包括SQL语句处理和对象操作。 神通ACCI接口采用兼容Oracle的OCCI(Oracle C++ Call Interface)的方式,使得应用能够快速的从Oracle数据库迁移到神通数据库上,极大的减少了应用移植和开发的时间和成本。
ACCI的优势¶
相对于其他方式访问神通数据库,ACCI的优势主要有:
- 兼容Oracle的OCCI接口,应用程序可以快速迁移到神通数据库上
- C++语言接口具有较高的性能和稳定性
- 采用缓存优化数据的读取,减少ACCI接口和神通数据库服务器的交互次数
- ACCI接口提供数组绑定功能,批量操作提升了数据的插入、更新和删除性能
ACCI的功能¶
ACCI提供以下功能:
- 用于设计可伸缩的、多线程的应用程序,可以安全地支持大量用户
- SQL访问函数,用于管理数据库访问、处理SQL语句和操作从神通数据库服务器检索到的对象
- SQL和PL/SQL查询的语句缓存
- 用于管理多个连接的连接池
- 对象类型转换
- 透明的应用程序故障转移支持
- 快速迁移ORACLE数据库中的数据至神通数据库中
ACCI运行要求¶
关于在运行时确定神通数据库客户端版本
在运行时,可以使用getClientVersion()方法检查当前Connection的客户端版本。
注意
1.目前windows下提供的运行时库,是基于visual studio 2015进行编译的,不能在visual studio 2008。
2.在Linux x86下提供的运行时库,是使用gcc4编译的,在gcc5以上是不能跑的,国产平台下的gcc版本也有很大差异,使用前可执行acci动态库获得acci的编译gcc版本。
3.debug版本和release版本需要区分。debug版本在库名字后面加d。(例如:windows debug版本:accid.dll,accid.lib。windows release版本:acci.dll,acci.lib)
4.windows下驱动的运行库方式是:
windows debug:多线程调试DLL(/MDd)
windows release:多线程DLL(/MD)
5.头文件和库文件路径:
| 系统 | 头文件路径 | 库文件路径 |
|---|---|---|
| Windows 64位 | 神通安装目录drivers\aci\include | 神通安装目录drivers\aci\win64 |
| Windows 32位 | 神通安装目录drivers\aci\win32 | |
| Linux & 64位 | 神通安装目录drivers/aci/include | 神通安装目录drivers/aci/linux64 |
| Linux & 32位 | 神通安装目录drivers/aci/linux32 |
在QT中使用¶
Windows
QT在Windows下依赖的编译环境有两种,一种是基于MSVC(即VS),另外一种是以来MinGW。由于神通的ACCI库是基于VS编译的,因此只能基于MSVC来构建QT的项目,否则无法加载多ACCI的类和方法;
Qtcreator中的pro文件中引用示例:
win32:CONFIG(release, debug|release): LIBS += -LD:/ShenTong/drivers/aci/win64/ -lACCI else:win32:CONFIG(debug, debug|release): LIBS += -LD:/ShenTong/drivers/aci/win64/ -lACCId
INCLUDEPATH += D:/ShenTong/drivers/aci/include DEPENDPATH += D:/ShenTong/drivers/aci/win64
Linux
QT在Linux下依赖的编译一般依赖的是gcc/g++,神通的ACCI库也是基于gcc/g++编译的,因此可直接引用链接。同时需要注意acci的编译gcc/g++和环境中的gcc/g++是否兼容一致。
注解
不管是在Windows还是Linux下,debug和release编译模式下需要引用不同acci库,debug需要引用accid的库,release下引用acci的库。