1.ODBC架构

ODBC:访问和管理数据库的标准API(应用程序编程接口),代表开放数据库互联(Open Database Connectivity)。提供了标准的方法使得应用程序可以访问各种不同的数据管理系统(DBMS),而不需要了解特定的数据库或操作系统的细节。也可以叫做“桥梁”,允许不同的应用程序与不同类型的数据库进行通信,访问和管理数据库。由四部分组成:

1.应用程序:包含用于检索、更新或操作数据源中的数据的API函数调用

2.驱动管理器:管理应用程序和数据源之间的通信,为每个数据源加载ODBC驱动程序,将API的调用从应用程序传递到驱动程序。

3.驱动程序:将ODBC API调用转化为数据库能理解的命令,并将数据从数据库返回到应用程序

4.数据源:可以是关系或非关系数据库,只需具有相应的ODBC驱动即可。

操作系统分为linux和Windows两种,所以odbc的架构也主要是分为两种形式。整体的架构二者是一致的,均是应用程序通过驱动程序管理器调用金仓的驱动后来连接数据库 不同的是驱动管理器与对应数据库的驱动的不同,在Linux下为.so动态链接文件,而在Windows下为DLL的形式。

ODBC提供了78个标准函数接口,映射替换以实现应用兼容性后,ODBC3.0共提供74个接口。ODBC与处理Call-Level接口(CLI)的以下规范和标准一致。(ODBC功能是其中每个标准的超集):

file

1.开放组CAE规范“数据管理:SQL Call-Level接口(CLI)”

2.ISO/IEC 9075-3:1995(E)Call-Level接口(SQL/CLI)。

2.ODBC数据类型

ODBC中存在下面的两类数据:

SQL数据类型:指示存储在数据源中的数据的数据类型

C数据类型:指示存储在应用程序缓冲区中的数据的数据类型

数据的转化类型:

1.将数据从一个应用程序变量传输到另一个应用程序变量(C到C);

2.将应用程序中的数据发送到语句参数(C到SQL);

3.结果集列中的数据在应用程序变量中返回(SQL到C);

4.数据从一个数据源传输到另一个数据源(SQL到SQL);

示例:SQL_CHAR(abcd)->SQL_C_CHAR(abcd\0[a])

SQL_C_CHAR(abcd\0[a])->SQL_CHAR(abcd)

3.ODBC句柄类型

环境句柄:访问与环境关联的任何全局信息。例如:环境状态、当前环境状态诊断、当前在环境上分配的连接句柄、每个环境属性的当前设置。

连接句柄:标识每个连接,一个连接包含一个驱动程序和一个数据源。连接句柄包含连接的状态、当前连接属性等。

语句句柄:每个语句由语句句柄标识,包含语句信息的结构。例如语句创建的任何结果集以及语句执行中使用的参数。

描述符句柄:是描述SQL语句的参数或结果集列的元数据集合。

1.应用程序参数描述符 (APD) :绑定到SQL语句中的参数的应用程序缓冲区信息。

2.实现参数描述符 (IPD):SQL语句参数信息。

3.应用程序行描述符 (ARD):绑定到结果集列的应用程序缓冲区信息。

4.实现行描述符 (IRD):结果集中列信息。

4.调用流程

应用开发调用流程依次进行环境、连接句柄的申请,而后在连接句柄的基础上进行连接与语句句柄的申请,之后便可利用语句句柄执行sql语句,执行结束与结果集处理完毕后便需要对之前申请的环境连接,语句等句柄的释放。

file

在调用某一个具体的接口时,应用程序先去调用标准的ODBC接口,而后再调用自己的金仓ODBC接口前会对接口的实现与否进行判断,如果有实现便进一步调用执行,如果没有则返回错误信息给应用程序。

file

更多信息,参见https://help.kingbase.com.cn/v8/index.html

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐