ODBC实质上是一个数据库的访问库,它为应用程序存取关系数据库提供一个接口标准,使应用程序具有最大限度的可操作性,帮助程序员完成绝大多数的数据库操作。当前,许多数据库系统都提供了标准化的ODBC环境,应用人员可以通过运用ODBC所提供的通用数据库操作的标准接口,在编程时就不必关心底层的DBMS,可直接针对各种数据库核心和服务器编写可移植的应用程序,用同样的SQL语句或命令实现对不同的数据库进行操作。这样,程序员就不需要专门学习各种数据库系统的接口技术,也简化了不同DBMS间的数据交换。ODBC支持多种操作系统环境,基于ODBC的应用程序具有极大的独立性。当更新一个DBMS或增加一个新的DBMS时,开发人员可不必重写它们的ODBC应用程序,甚至不用重新编译就可以直接使用。
ODBC是由应用程序、驱动程序管理器、数据库驱动程序和数据源等部件组成。ODBC的结构是层次化的,它描述了嵌入ODBC的应用程序和ODBC组成部件之间的关系。
应用程序:执行处理并调用ODBC函数,以提交SQL语句并检索结果;应用程序可以通过ODBC API访问不同数据源中的数据,每个不同的数据源类由一个ODBC驱动程序支持。
驱动程序管理器:ODBC的驱动器管理器是一个共享的程序库管理器,是一个动态连接库,它根据应用程序的数据库类型装入相应的驱动程序,把应用程序的调用分配给一个或多个数据库驱动器,并负责装载或卸载驱动器、检查状态、管理多个应用和数据源之间的联接。
驱动程序:处理ODBC函数调用,提交SQL请求到一个指定的数据源,其主要任务是建立与数据源的链接、分发请求给数据源、翻译数据格式、返回结果给应用程序、错误格式的处理等。
数据源:包括用户要访问的数据及其相关的操作系统、DBMS及用于访问DBMS的网络平台。
ODBC是基于动态连接库方式的。对于任何ODBC,只要提供了该DBMS的驱动程序,并符合DBMS的接口规范,该数据库就可被DBMS所访问和处理。在系统运行时,DBMS接口是通过配置文件中的数据源来了解所采用的驱动程序,因为每个数据源包含了数据源的名称、数据源的描述、数据库文件存放的路径、DBMS的类型和相应的驱动程序、数据库文件的后缀格式等内容。DBMS首先通过一个环境句柄,建立了应用程序与DBMS系统之间的联系,然后通过连接句柄与数据源建立起连接关系,最后通过语句句柄,与操作建立起联系,由系统管理这些操作或SQL语句。取到语句句柄后,就可以执行相应的SQL语句 。