分类: DB2/Informix
2010-08-18 11:04:11
Informix CLI 与 ODBC
INFORMIX CLI
INFORMIX CLI (call level
interface)
,又称INFORMIX调用级接口,使得应用开发者可以动态地访问INFORMIX数据库服务器。基于Microsoft的开放的数据库互联结构
(ODBC),INFORMIX-CLI提供给您一种基于工业标准的方式, 访问存放于INFORMIX中的数据。
对开放的调用界面的需求
随着跨数据库平台的应用的急剧增长,特别是决策支持系统的需求日益加大,信息市场对开放式调用界面的需求骤然增加。由于基于开放式调用接口的应用可以忽略不同的目标数据源而灵活地存在,因而可以免去对各独立的数 据源需重新编译应用的麻烦。
作为应用程序访问数据库的接口,INFORMIX CLI包含了一组支持SQL语句的调用函数库。它使得基于客户机/服务器的数据库应用特别是动态的、交互式的数据库访问成为可能。
对于静态的SQL语句,当程序编译后,所有的程序构成都将固定保持不变。而对于动态的SQL语句,程序编译后并不能知道所有的程序内容,只有在程序运行并
接收了所有的语句构成部分之后,程序的所有构成才能知晓。为此,CLI并不需要预编译器,它可以让开发者将动态的SQL语句直接写入C程序之中。对于提交
一个SQL请求,开发者仅需简单地将SQL命令放入一个缓冲区中 并将缓冲区的内容作为参数以函数调用的形式传入运行的程序中。
INFORMIX-CLI
基于Microsoft开放式连接规则,INFORMIX-CLI的组成结合了标准的SQL、强大而灵活的自然的C调用界面以及开放的被广泛接受的
ODBC API 规则。利用NFORMIX CLI,遵从ODBC标准的应用,可以通过开放的工业 标准访问INFORMIX的数据源。
INFORMIX CLI包含一组支持SQL的C语言函数调用库。采用INFORMIX CLI写的应用,不用将SQL语句嵌入到INFORMIX CLI程序中,而是将SQL语句作为一
组字串,以函数变量的方式传入到 INFORMIX CLI程序中。利用INFORMIX CLI,应用可以:
? 申请一个与INFORMIX数据库的连接或对话;
? 向数据库发送SQL请求;
? 对请求返回结果,定义其数据格式及存储空间;
? 取出SQL返回结果;
? 报告错误信息;
? 实施对事物的控制;
? 结束与数据库的连接。
INFORMIX
CLI由两部分组成:给应用提供信息的驱动管理器及执行函数调用与管理应用与INFORMIX数据库之间的信息交换的驱动器。INFORMIX
CLI驱动器支持所有核心级及level 1API函数,并支持与 ODBC标准一致的level 2 级函数(见表1所示)。INFORMIX
CLI支持最小级及核心级的SQL语法,包括一些扩展的SQL语句、表达式及数据类型。
INFORMIX CLI有UNIX及Windows版本。所有版本均包含驱动器所需的初始化文件结构,函数,SQL语法及错误信息格式等。
ODBC --- De Facto工业标准
Microsoft 开发了一种建立在X/Open SQL Access Group
调用级接口规则之上的调用级接口规则叫开放的数据库互联(ODBC)。ODBC是一组透明地访问关系型数据库的通用的API。ODBC提供编程者一种选
择:编写独立于数据库的应用或利用基于某数据库引擎性能优化器的SQL应用。
ODBC体系结构包括四个部分:
? 遵从ODBC的应用:遵从ODBC的应用将执行ODBC的函数调用、提交SQL语句并取回结果。
? ODBC驱动管理器:ODBC驱动管理器在Windows环境下由Microsoft的动态连接库充当或在UNIX下由共享库充当。驱动管理器将应用的请求发放到驱动器并提供应用的接口界面。
? ODBC驱动:ODBC驱动处理ODBC的函数调用,将请求转变为数据源的语法格式,对特定的数据源提交SQL请求并将结果返回到应用。
? 数据源:数据源式驻留数据的数据库管理系统。
ODBC驱动及驱动管理器对于应用来说就象一个统一的整体,处理着ODBC的调用。
ODBC一致性的级别
为帮助应用得建立及引导开发者建立整套的标准功能,ODBC对驱动定义了两种不同的一致性标准:API一致性标准及SQL一致性标准。每一个标准拥有遵从三个级别,相应级别支持的函数功能或SQL语法。表1列举了API一致 性级别提供的SQL功能。
INFORMIX CLI产品的特点
全球语言支持(GLS)
全球语言支持功能存在于INFORMIX 7.2及7.2以上版本,它可以操纵不同的文化背景、不同的语言及不同的字符集,而毋需区别其运行的地域及国家。
遵从工业标准
INFORMIX CLI是基于ODBC基础上的,因此它符合 X/Open 及 SQL Access Group
组织的调用接口规则。ODBC及 X/Open 及 SQL Access Group 组织的调用接口规则提供了一种遵从ANSI
SQL标准的、公用的、开放的接口。利用此接口,可以访问任何的INFORMIX服务器。
支持INFORMIX客户端的开发
INFORMIX CLI允许作为INFORMIX客户端的开发工具。当利用建立在INFORMIX动态可伸缩性体系结构上的INFORMIX
CLI作为工具时, INFORMIX可以提供给开发者INFORMIX自身所独有的特性 --- 一些高级的数据库访问的API。例如:
? INFORMIX 数据类型,包括byte 及 text;
? INFORMIX 自身的SQL语句,包括高级数据定义语句;
? INFORMIX的隔离级别,包括提交读和游标固定;
? INFORMIX存储过程的SQL操作,包括查询、更新、插入及删除;
? INFORMIX自身的错误信息,包括SQLCA数据结构。
支持INFORMIX的开发工具及应用
INFORMIX
CLI可以被利用在成千上万的利用INFORMIX工具的INFORMIX应用中。已经存在的遵循ODBC标准的应用,通过INFORMIX
CLI提供的ODBC技术,可以连接到INFORMIX数据库服务器上。含有INFORMIX-Connect 是 INFORMIX
客户端开发工具软件包 (SDK)的组成部分。INFORMIX-Connect允许任何的INFORMIX应用访问INFORMIX 数据库引擎。
表1: API 一致性级别
ODBC 核心函数 ODBC Level 1函数 ODBC Level 2函数
SQLAllocConnect SQLBindParameter SQLBrowseConnect
SQLAllocEnv SQLColumns SQLColumnPriviliges
SQLAllocStmt SQLDriverConnect SQLDataSources
SQLBindCol SQLGetData SQLDrivers
SQLCancel SQLGetConnectOption SQLExtendedFetch
SQLColAttributes SQLGetFunctions SQLMoreResults
SQLConnect SQLGetInfo SQLNativeSQL
SQLDescribeCol SQLGetStmtOption SQLNumParams
SQLDisconnect SQLGetTypeInfo SQLParamOptions
SQLError SQLParamData SQLPrimaryKeys
SQLExexDirect SQLPutData SQLProcedures
SQLExecute SQLSetConnectOption SQLSetScrollOptions
SQLFetch SQLSetStmtOption SQLTablePrivileges
SQLFreeConnect SQLSpecialColumns
SQLFreeEnv SQLStatistics
SQLFreeStmt SQLTables
SQLGetcursonName
SQLNumResultCols
SQLPrepare
SQLRowCount
SQLSetCursorName
SQLTransact