第12章 ODBC数据库应用程序开发 本章要点: 如何配置0DBC数据源。 在联接数据源阶段,如何申请、释放句柄以及怎 样连接数据源。 在初始化应用程序阶段,如何申请和设置语句句 柄。 在SQL处理阶段,如何对SQL语句和结果集进行处 理。 1
1 第12章 ODBC 数据库应用程序开发 本章要点: 如何配置ODBC数据源。 在联接数据源阶段,如何申请、释放句柄以及怎 样连接数据源。 在初始化应用程序阶段,如何申请和设置语句句 柄。 在SQL处理阶段,如何对SQL语句和结果集进行处 理
0DBC(0 pen Database Connectivity)是一种重要的 数据库访问应用程序接口。它独立于数据库,是在 X/Open(现代的0 pen Group)的结构化查询语言调用层 接口基础上建立的。使用ODBC开发数据库应用程序时, 调用的是标准的ODBC函数和SQL语句。数据库的底层 操作由各个数据库的驱动程序来完成,因此0DBC数据 库具有良好的适应性和可移植性。 数据源名称(DS)是连接数据库驱动程序与数据库系 统的桥梁,它为ODBC驱动程序指定数据库服务器名称 以及用户连接参数等选项。可以用ODBC数据源管理器 来建立数据源。 建立好数据源后,就可以进行ODBC应用程序的编写。 创建0DBC应用程序的步骤:连接数据源、初始化应用 程序、SQL处理阶段和结束阶段。 2
2 ODBC(Open Database Connectivity)是一种重要的 数据库访问应用程序接口。它独立于数据库,是在 X/Open(现代的Open Group)的结构化查询语言调用层 接口基础上建立的。使用ODBC开发数据库应用程序时, 调用的是标准的ODBC函数和SQL语句。数据库的底层 操作由各个数据库的驱动程序来完成,因此ODBC数据 库具有良好的适应性和可移植性。 数据源名称(DNS)是连接数据库驱动程序与数据库系 统的桥梁,它为ODBC驱动程序指定数据库服务器名称 以及用户连接参数等选项。可以用ODBC数据源管理器 来建立数据源。 建立好数据源后,就可以进行ODBC应用程序的编写。 创建ODBC应用程序的步骤:连接数据源、初始化应用 程序、SQL处理阶段和结束阶段
12.10DBC概述 0DBC(0 oen Database Connection开放式数据库连 接)是Microsoft定义的一种数据库访问标准,用 来提供一种标准的桌面数据库访问的方法来访问 不同平台上的数据库。 0DBC是十分广泛使用的数据库接口。接口以SQL作 为标准的查询语言来存取所连接的数据库,实现 用相同的代码访问多种不同格式的数据库,开发 者不必考虑数据库操作系统的类型
3 12.1 ODBC概述 ODBC(Open Database Connection开放式数据库连 接)是Microsoft定义的一种数据库访问标准,用 来提供一种标准的桌面数据库访问的方法来访问 不同平台上的数据库。 ODBC是十分广泛使用的数据库接口。接口以SQL作 为标准的查询语言来存取所连接的数据库,实现 用相同的代码访问多种不同格式的数据库,开发 者不必考虑数据库操作系统的类型
ODBC的组成:ODBC应用程序、 ODBC驱动程序管 理器、ODBC驱动程序、数据源四部分组成。 ODBC应用程序 ODBC驱动程序管理器 0DBC驱动程序1 0DBC驱动程序2 0DBC驱动程序3 数据源 数据源 数据源 4
4 ODBC的组成: ODBC应用程序、 ODBC驱动程序管 理器、 ODBC驱动程序、数据源四部分组成。 ODBC应用程序 ODBC驱动程序管理器 ODBC驱动程序1 ODBC驱动程序2 ODBC驱动程序3 数据源 数据源 数据源
12.1.10DBC应用程序 ODBC应用程序是一种使用Visual Basic、Visual C++或者其它PC机上的开发平台下编写的用户自定 义需要访问ODBC数据源的应用程序。 ODBC应用程序通过调用ODBC接口建立起与ODBC驱 动程序管理器的连接,并且调用ODBC API函数, 提交$QL语句并接收SQL的执行结果。 0DBC应用程序的主要任务: 选择并连接一个数据源 检索结果 处理错误 提交或回滚包括SQL语句的事务 断开数据源 5
5 12.1.1 ODBC应用程序 ODBC应用程序是一种使用Visual Basic、Visual C++或者其它PC机上的开发平台下编写的用户自定 义需要访问ODBC数据源的应用程序。 ODBC应用程序通过调用ODBC接口建立起与ODBC驱 动程序管理器的连接,并且调用ODBC API函数, 提交SQL语句并接收SQL的执行结果。 ODBC应用程序的主要任务: • 选择并连接一个数据源 • 检索结果 • 处理错误 • 提交或回滚包括SQL语句的事务 • 断开数据源
12.1.2 ODBC驱动程序管理器 ODBC驱动程序管理器用来管理0DBC驱动程序,负 责将适当的0DBC驱动程序加载到内存中,并将以 后的请求送给正确的0DBC驱动程序。 12.1.30DBC驱动程序 0DBC驱动程序由厂商提供,负责将SQL请求发给关 系数据库管理系统(RDBMS),并将结果返回ODBC 驱动程序管理器,然后再由0DBC驱动程序管理器 把这些请求传给ODBC应用程序 。 不同的数据库有不同的驱动程序,如SQL Server 驱动程序只与SQL Server数据库通信,而不能访 问Access数据库。同样Access驱动程序不能访问 SQL Server数据库 。 6
6 12.1.2 ODBC驱动程序管理器 ODBC驱动程序管理器用来管理ODBC驱动程序,负 责将适当的ODBC驱动程序加载到内存中,并将以 后的请求送给正确的ODBC驱动程序。 12.1.3 ODBC驱动程序 ODBC驱动程序由厂商提供,负责将SQL请求发给关 系数据库管理系统(RDBMS),并将结果返回ODBC 驱动程序管理器,然后再由ODBC驱动程序管理器 把这些请求传给ODBC应用程序。 不同的数据库有不同的驱动程序,如SQL Server 驱动程序只与SQL Server数据库通信,而不能访 问Access数据库。同样Access驱动程序不能访问 SQL Server数据库
12.1.4数据源名称 数据源名称(Data Source Name,简称DNS)由用 户要访问的数据以及与之相关的操作系统、DBMS 和网络平台组成,是连接数据库驱动程序和数据 库系统的桥梁。 7
7 12.1.4 数据源名称 数据源名称(Data Source Name,简称DNS)由用 户要访问的数据以及与之相关的操作系统、DBMS 和网络平台组成,是连接数据库驱动程序和数据 库系统的桥梁
12.2管理0DBC数据源 使用0DBC数据源之前,必须安装0DBC驱动程序, 并配置数据源。 创建数据源: 12.3连接数据源 创建好数据源后,就可以进行ODBC应用程序的编 写。ODBC应用程序通过调用ODBC API(ODBC应用程 序接口)来建立与数据源的连接 应用程序直接调用0 DBC API时,它可以调用包含 在0DBC驱动管理程序中的函数ODBC.DLL或 ODBC32.DLL 创建0DBC应用程序(调用ODBC API函数)的步骤: 连接数据源、初始化应用程序、SQL处理阶段和结 束阶段 8
8 12.2 管理ODBC数据源 使用ODBC数据源之前,必须安装ODBC驱动程序, 并配置数据源。 创建数据源: 12.3 连接数据源 创建好数据源后,就可以进行ODBC应用程序的编 写。ODBC应用程序通过调用ODBC API(ODBC应用程 序接口)来建立与数据源的连接 应用程序直接调用ODBC API时,它可以调用包含 在ODBC驱动管理程序中的函数ODBC.DLL或 ODBC32.DLL。 创建ODBC应用程序(调用ODBC API函数)的步骤: 连接数据源、初始化应用程序、SQL处理阶段和结 束阶段
连接数据库 初始化阶段 SQL处理 结束阶段 申请环境句柄 获取驱动程序 能力 释放语句句柄 申请环境属性 执行语句以及 申请语句句柄 处理结果 申请连接句柄 断开数据源 连接数据源 设置语句句柄 释放连接句柄 设置连接属性 释放环境句柄 ODBC API使用概图 9
9 连接数据库 初始化阶段 SQL处理 结束阶段 申请环境句柄 申请环境属性 释放语句句柄 执行语句以及 处理结果 获取驱动程序 能力 设置连接属性 连接数据源 申请连接句柄 设置语句句柄 申请语句句柄 释放环境句柄 释放连接句柄 断开数据源 ODBC API使用概图
12.4执行SQL语句 连接完数据源后,就可以使用基本的ODBC数据访 问函数,从ODBC数据源中检索、插入或者更新信 息等。 SQL是0DBC访问数据的核心。ODBC应用程序可以将 任何有效的$QL命令发送给主机数据库。 0DBC应用程序可以使用动态的SQL语句或者预准备 的SQL语句。 动态的SQL语句由SQLExecDirect函数来执行,称 为立即执行方式。 预准备的SQL语句由SQLPrepare函数和SQLExcute 函数来执行,称为准备执行方式
10 12.4 执行SQL语句 连接完数据源后,就可以使用基本的ODBC数据访 问函数,从ODBC数据源中检索、插入或者更新信 息等。 SQL是ODBC访问数据的核心。ODBC应用程序可以将 任何有效的SQL命令发送给主机数据库。 ODBC应用程序可以使用动态的SQL语句或者预准备 的SQL语句。 动态的SQL语句由SQLExecDirect函数来执行,称 为立即执行方式。 预准备的SQL语句由SQLPrepare函数和SQLExcute 函数来执行,称为准备执行方式