第二章 ODBC API参考资料.docVIP

  • 4
  • 0
  • 约1.28万字
  • 约 12页
  • 2017-06-19 发布于湖北
  • 举报
使用ODBC API进行数据库编程 ODBC(Open Database Connectivity,开放数据库连接),是由 Microsoft 公司基于 X/OPEN CLI 提出的用于访问数据库的应用程序编程接口,主要完成应用程序和数据库系统之间的中间件功能。基于 ODBC 的应用程序通过 ODBC 提供的 API 与数据库进行交互,在避免了应用程序直接操作数据库系统的同时,极大的增强了应用程序的可移植性、扩展性和可维护性。定义了访问数据库的API一个规范,这些API独立于不同厂商的数据库产品。在开始使用ODBC编程之前,需要安装ODBC驱动程序,并在ODBC驱动管理器中注册。Windows 操作系统自带了ODBC驱动程序管理器, 可以在 “控制面板-管理-ODBC数据源管理器” 找到ODBC头文件有5个:sql.h, sqlext.h, sqltypes.h, sqlucode.h and odbcinst.h一般情况下用到sql.h 和sqlext.h#include sql.h??????????????// This is the the main include for ODBC Core functions. #include sqlext.h?????????// This is the include for applications using the Microsoft SQL Extensions #include sqltypes.h????// This file defines the types used in ODBC #include sqlucode.h???// This is the unicode include for ODBC Core functions #include odbcinst.h??????// This is the application include file for the SQL Server driver specific defines. 库文件:odbc32.lib 二、ODBC 应用的结构 图 2.1 一个简单的 ODBC 应用的概念模型一个 ODBC 程序通常可以分为三个模块:初始化、数据库操作和资源释放。初始化模块主要完成数据库句柄的创建,环境参数的设置及连接到数据库等操作;数据库操作部分是整个程序的主体,主要完成与业务逻辑相关的数据库对象及数据的增、删、改、查等操作;资源释放模块主要包括数据库连接及资源的释放等。初始化模块主要进行分配和初始化系统资源,为稍后的数据库操作做准备。具体包括 Environment handle 和 Connection handle 的创建和初始化、连接到指定的数据源、全局及连接属性的设置等。图 2.2 所示为初始化部分的示意图,图中虚线表示的是可选项,即可以自定义全局或连接属性,也可以不进行设置,使用系统的默认值。 图 2.2 初始化模块分配 handle:使用 SQLAllocHandle() 来统一分配 handle设置和查询全局属性:使用 SQLSetEnvAttr() 和 SQLGetEnvAttr() 来设置和查询全局属性。设置和查询连接属性:使用 SQLSetConnectAttr() 和 SQLGetConnectAttr() 来设置和获得连接属性。?连接到数据源:使用 SQLConnect() 或者 SQLDriverConnect() 连接到指定的数据源。SQLConnect 和 SQLDriverConnect 都可以完成连接到数据库的功能,但是 SQLDriverConnect 能够在连接时通过指定连接字符串进行更加详细的设置。数据库操作 数据库操作模块包括是整个程序的主体 , 根据业务需求 , 完成对数据库对象的创建、修改、删除及数据的增、删、改、查等。一个基本的 ODBC 数据库操作由以下五步组成,如图 2.3 所示。 图 2.3 数据库操作示意图1)?分配 Stmt handle:包括 Stmt handle 的创建,并根据需要对其属性进行设置,例如设置绑定参数类型,游标是否可滚动等。Stmt handle 是执行数据库操作的句柄,所有涉及数据库数据的操作都由 Stmt handle 来实现,同时也可以针对需求对某些数据库操作进行特殊的属性设置,如游标是否可滚动,隔离级别的设置等。Stmt handle 由 Connection handle 分配,一个 Connection handle 可以分配同时多个 Stmt handle 来进行不同的操作。2)?执行数据库操作。其中数据库操作主要包括数据库对象 ( 表、视图、存储过程、触发器等 ) 的操作 ( 创建、修改、删除 ) 和

文档评论(0)

1亿VIP精品文档

相关文档