四、一致性级别
从应用程序观点来看,最理想的情况是每个数据源和驱动程序都支持同一套ODBC函数调用和SQL语句。但是由于形形色色的DBMS在实现上有很的差异,它们所依赖的系统和环境也各不相同,在对ODBC支持的程度上就不一致。一致性级别(Conformance Levels)建立了对众多功能的标准划分,为应用程序和驱动程序提供帮助和选择的依据。它划定了驱动程序所支持的ODBC函数和SQL语句的范围,我们可以用SQLGetInfo、SQLGetFunctions、SQLTypeInfo三个函数获知驱动程序所支持的功能集。ODBC从API和SQL语法两方面划分级别。
1. API的一致性
ODBC将函数调用划分为三级。
(1)核心API 它包括了与SAG的CLI相匹配的基本功能,包括:分配与释放环境、连接及语句句柄;连接到数据源;考|试/准备并执行SQL语句或立即执行SQL语句;为SQL语句和结果列中的参数分配存储器;从结果中检索数据,检索结果的信息;提交和撤消事务处理;检索错误信息。
(2)一级API 它包括了核心API的全部功能,比如用特定驱动程序的对话框连接到数据源;设置和查询语句值和连接选项;送部分或全部参数值;检索部分和全部结果;检索目录信息;检索关于驱动程序和数据源的信息。
(3)二级API 其功能包括核心和一级API的全部功能;浏览可获得的连接和可获得的数据源列表;发送参数值数组,检索结果数组;检索参数个数及参数描述;应用可卷动的光标;检索SQL语句和本机表格;检索各种目录信息;调用转换DLL。
2. SQL语法的一致性级别
从SQL方面可划分为最小的SQL语法、核心SQL语法和扩展SQL语法三个等级。
五、ODBC的应用与前景
ODBC的出现给用户描绘了一个诱人的前景,即网络中的Windows用户可以方便地访问各种数据库。现在,在微软推出的许多产品中都提供了ODBC支持,如Visal Basic 3.0、Visal C1.5、Excel 5.0、Word 6.0、FoxPro、Access等。同时其他一些应用软件和开发工具也提供了对ODBC的支持。因此用户只要安装不同的ODBC驱动程序,就可存取相应的数据库产品,而不管用户使用何种前台应用软件,也不管后台是何种数据库,这个存取的过程是一致的。
但是由于ODBC产生的时间还不长,其应用也同时存在着一些问题。首先,它的层次比较多,表现在性能上比专有的API要慢,这是其标准化和开发性所带来的必要的代价;其次,由于ODBC规定了三个层次的一致性级别,应用程序与驱动程序之间的匹配就会出现一些问题和矛盾,比如某些驱动程序支持的级别比较低,而应用程序要求的比较高;再者,由于不同的驱动程序为不同的开发商所开发,测试工作不能统一,而现有的开发和测试工具并不很完善;考|试/同时,在非SQL的数据库系统上的应用也存在一些问题。
微软公司将ODBC作为一项很重要的技术,它已承诺进一步改进ODBC技术,为驱动程序开发者提供更先进的开发和测试工具,还将交付系统管理和监控工具,它还将与DBMS厂商和第三方厂商建立更密切的合作,以期使驱动程序支持更高级别的一致性,并在规范化方面有所完善。目前,ODBC已为数据库供应商组织内部所认可,同时为众多应用软件厂商和第三方开发商所使用,相信随着SQL的推广和规范,用户和开发商会更加依赖于这一技术。