金仓数据库 ODBC简介
应用开发调用流程依次进行环境、连接句柄的申请,而后在连接句柄的基础上进行连接与语句句柄的申请,之后便可利用语句句柄执行sql语句,执行结束与结果集处理完毕后便需要对之前申请的环境连接,语句等句柄的释放。在调用某一个具体的接口时,应用程序先去调用标准的ODBC接口,而后再调用自己的金仓ODBC接口前会对接口的实现与否进行判断,如果有实现便进一步调用执行,如果没有则返回错误信息给应用程序。不同的是驱动
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功能是其中每个标准的超集):
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语句,执行结束与结果集处理完毕后便需要对之前申请的环境连接,语句等句柄的释放。
在调用某一个具体的接口时,应用程序先去调用标准的ODBC接口,而后再调用自己的金仓ODBC接口前会对接口的实现与否进行判断,如果有实现便进一步调用执行,如果没有则返回错误信息给应用程序。
更多推荐
所有评论(0)