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的库。