数据库系统原理-ODBC技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库服务器
数据库引擎 数据库
图4
基于网关机制的多层驱动程序ODBC结构(三层结构)
2 ODBC的体系结构(六)
①
② ③
用户数据源:用户创建的数据源,称为“用户数据 源”。此时只有创建者才能使用,并且只能在所定 义的机器上运行。任何用户都不能使用其他用户创 建的用户数据源。 系统数据源:所有用户和在Windows 下以服务方 式运行的应用程序均可使用系统数据源。 文件数据源:文件数据源是ODBC 3.0以上版本增 加的一种数据源,可用于企业用户,ODBC驱动程 序也安装在用户的计算机上。
数据库连接技术 ----ODBC
1 ODBC概念
图1
采用API的应用编程
2 ODBC的体系结构(一)
ODBC数据库应用程序 驱动程序管理器 SQL Server 驱动程序 Oracle 驱动程序 Foxpro 驱动程序 Sybase 驱动程序 DB2 驱动程序
SQL Server 数据源
Oracle 数据源
Foxpro 数据源
Sybase 数据源
DB2 数据源
DB
DB
DB
DB
DB
图2
ODBC的分层体系结构
2 ODBC的体系结构(二)
应用程序的主要功能是:调用ODBC函数,递交 SQL语句给DBMS,检索出结果,并进行处理。 驱动程序管理器是一个动态连接库(DLL),用于 连接各种DBS的DBMS驱动程序(如Oracle、 Foxpro、Sybase等驱动程序),管理应用程序和 DBMS驱动程序之间的交互作用(通信)。 应用程序通过调用驱动程序所支持的函数来操纵数 据库。驱动程序也是一个动态连接库(DLL)。
连接句柄
语句句柄
语句句柄
图7 三种句柄之间的关系
语句句柄
3.2 ODBC句柄(二)
henv □ hdbc □ hstmt□ … 环境句柄 (定义DB应用环境) 连接句柄 (定义一个DB连接) 语句句柄 (定义一个SQL语句)
……
图8
各种句柄之间的关系
3.3 ODBC应用举例
#Step 1: 初始化环境参数 connStr = 'DSN=testDB;PWD=1'
#Step 2: 建立连接 conn = pyodbc.connect(connStr) #Step 3: 分配语句句柄 cursor = conn.cursor() #Step 4: 执行SQL语句并得到结果集 sqlStr = "select * from student" cursor.execute(sqlStr) #Step 5: 处理结果集 while 1: … #Step 6: 关闭连接,释放资源 conn.close()
2 ODBC的体系结构(三)
图3
网络环境下基于单层驱动程序的ODBC结构
2 ODBC的体系结构(四)
图4
基于多层驱动程序的ODBC结构(两层结构)
2 ODBC的体系结构(五)
基于网关机制的多层驱动程序的ODBC结构
ODBC数据库应用程序 客户浏览器 客户端网络支撑软件 (网络) 服务器网络支撑软件 WWW服务器 数据库网关 驱动程序管理器 驱动程序
3 ODBC的特性
① ②
③
ODBC是一个调用层的接口 ODBC定义了标准的SQL语法 ODBC提供一个驱动程序管理器来管理并同 时访问多个DBMS系统
3.1 ODBC应用程序的基本流程
图6
ODBC应用程序的基本流程
3.2 ODBC句柄(一)
应用程序 环境句柄 (只有一个)
连接句柄
连接句柄
Hale Waihona Puke Baidu
…… ……