第12章 开放数据库互连(ODBC)要点
ODBC开放式数据库互联PPT教学课件
2020/12/11
8
ODBC API(4)
ODBC应用程序流程
初始化阶段
分配环境句柄 分配连接句柄
• 在分配连接句柄前,最好先设置环境句柄所用的ODBC参数
建立连接 分配语句句柄
程序主体
结束部分
释放语句句柄
断开数据源连接
释放连接句柄
2020/12/11
9
释放环境句柄
ODBC API(4)—什么是句柄
2020/12/11
3
ODBC开放数据库互连
开放数据库互连(Open Database Connectivity,ODBC)是微软公司开放服 务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部
分,它建立了一组规范,并提供了一组对 数据库访问的标准API(应用程序编程接 口)。这些API利用SQL来完成其大部分任 务。ODBC本身也提供了对SQL语言的支持, 用户可以直接将SQL语句送给ODBC。
2020/12/11
6
ODBC API(1)
理论上,为了互操作,所有DBMS提供的ODBC 调用函数和SQL语句应该完全一致?不可能
驱动程序的一致性级别((Conformance Levels)
API一致性:核心级、扩展1级、扩展2级 语法一致性:最低限度SQL语法级、核心SQL语法级、
扩展SQL语法级
户所需要的各种数据管理的方式。数据库
有很多种类型,从最简单的存储有各种数
据的表格到能够进行海量数据存储的大型
数据库系统都在各个方面得到了广泛的应
用。 2020/12/11
2
严格地说,数据库是“按照数据结构来 组织、存储和管理数据的仓库”。在经济 管理的日常工作中,常常需要把某些相关 的数据放进这样的“仓库”,并根据管理 的需要进行相应的处理。例如,企业或事 业单位的人事部门常常要把本单位职工的 基本情况(职工号、姓名、年龄、性别、籍 贯、工资、简历等)存放在表中,这张表就 可以看成是一个数据库。有了这个"数据仓 库"我们就可以根据需要随时查询某职工的 基本情况,也可以查询工资在某个范围内 的职工人数等等。
数据库接口odbc等
• OLE DB 标准的具体实现是一组C++ API 函数,就像 ODBC 标准中的ODBC API 一样,不同的是,OLE DB 的 API 是符合COM 标准、基于对象的(ODBC API 则是简 单的C API)。使用OLE DB API,可以编写能够访问符合 OLE DB 标准的任何数据源的应用程序,也可以编写针对 某种特定数据存储的查询处理程序(Query Processor) 和游标引擎(Cursor Engine),因此OLE DB 标准实际 上是规定了数据使用者和提供者之间的一种应用层的协议 (Application-Level Protocol)。 • 微软数据库产品SQL Server 7.0 的查询处理程序就是使 用OLE DB API 编写的,所以在SQL Server 7.0 的 Transact-SQL 语法中,可以支持异种数据库的查询,当 然,这些异种数据库必须也提供相应的OLE DB 访问接口。
各部件之间的关系如图下图所示
• 应用程序要访问一个数据库,首先必须用ODBC 管理器注册一个数据源,管理器根据数据源提供 的数据库位置、数据库类型及ODBC驱动程序等 信息,建立起ODBC与具体数据库的联系。这样, 只要应用程序将数据源名提供给ODBC,ODBC 就能建立起与相应数据库的连接。 在ODBC中,ODBC API不能直接访问数据库,必 须通过驱动程序管理器与数据库交换信息。驱动 程序管理器负责将应用程序对ODBC API的调用 传递给正确的驱动程序,而驱动程序在执行完相 应的操作后,将结果通过驱动程序管理器返回给 应用程序。
• 5、 获取记录集 • A、 绑定列:首先必须分配与记录集中字段相对应的变量,然后通 过函数SQLBindCol将记录字段同程序变量绑定在一起,对于长记录 字段,可以通过调用函数SQLGetData直接取回数据。 • 绑定字段可以根据自己的需要全部绑定,也可以绑定其中的某几个字 段。 • 通过调用函数SQLBindCol将变量地址值赋为NULL,可以结束对一个 记录字段的绑定,通过调用函数SQLFreeStmt,将其中选项设为 SQL_UNBIND,或者直接释放句柄,都会结束所有记录字段的绑定。 • B、SQLFetch:该函数用于将记录集的下一行变成当前行,并把所有 捆绑过的数据字段的数据拷贝到相应的缓冲区。 • C、 光标:应用程序获取数据是通过光标(Cursor)来实现的,在 ODBC中,主要有3种类型的光标:单向光标、可滚动光标和块光标。 • 有些应用程序不支持可滚动光标和块光标,ODBC SDK提供了一个光 标库(ODBCCR32.DLL),在应用程序中可通过设置连接属性 (SQL_STTR_ODBC_CURSOR)激活光标库。
vc之ODBC连接数据库图文全解
vc之ODBC连接数据库图文全解我们在编程时要保存各种实时接收的数据,并为以后的数据再现回放,就应该建立数据文件,而这种数据文件可以用普通文件读写方式,但当数据类型较多且要求随时回放数据时,要求编程时设置较大的动态数组,这会占用较多的系统资源,甚至导致程序崩溃;而利用数据库则可以较好地解决这个问题,我们将数据放到数据源文件中,通过编程接口对其进行访问。
ODBC(开放的数据库连接:Open Database Connectivity)为各种类型的数据库管理系统提供了统一的编程接口,我们在下面的几篇文章中,首先通过实例说明ODBC技术的应用方法,然后说明如何将串口数据实时保存在数据源文件中,这一方面介绍VC中ODBC技术的应用(前面的例子不涉及串口技术,以方便只想了解ODBC技术的读者,又为利用ODBC技术保存串口编程数据提供范例,虽然前面几个例程与串口通讯不相关,但如果对使用数据库不熟悉,也请从前面有耐心地看下去。
1.首先在控制面板中,打开ODBC数据源,点击用户DSN选项,在出现的界面中点击添加,如下图所示:然后,点击完成按钮,出现下图,填入数据源名(可随意取名,本处设为biao)点击确定即可。
2.在ACCESS中创建数据库,本例中为data(只包含number,name,score三列),可从我提供的这个例子下COPY3.建立应用程序项目(1)打开File 菜单的New 选项,选取Projects,选择MFC AppWizard (exe),填入工程名,本例为DATA1(2)把数据库文件data拷入新建的工程目录。
(3)应用程序的类型指定为SDI,在Step2 对话框中选择Header Files Only选项,在Step6是将视图基类指定为CScrollView。
(4)用ClassWizard 创建记录集类。
从Add Class菜单中选择New,并按下图填充对话框:(说明:一个CRecordset对象代表从数据源中查询的一个记录集。
Visual C++中的开放数据库连接技术
Visual C++中的开放数据库连接技术【摘要】本文主要介绍了Visual C++中的开放数据库连接技术,包括ODBC技术和ADO技术在Visual C++中的应用,以及它们之间的对比分析。
同时还探讨了Visual C++中其他开放数据库连接技术的应用情况,以及这些技术的优势与局限性。
最后对Visual C++中开放数据库连接技术的发展趋势进行了探讨,并展望了未来的发展方向。
本文旨在帮助读者更好地了解和应用Visual C++中的开放数据库连接技术,从而提高程序开发效率和数据库连接的灵活性。
【关键词】Visual C++, 开放数据库连接技术, ODBC, ADO, 对比分析, 优势, 局限性, 发展趋势, 展望, 总结1. 引言1.1 Visual C++中的开放数据库连接技术概述在Visual C++中,开发人员可以通过使用ODBC(Open Database Connectivity)和ADO(ActiveX Data Objects)等技术来实现数据库连接和数据操作。
ODBC技术提供了一种标准的接口,使得开发人员能够以统一的方式访问各种不同类型的数据库。
而ADO技术则是一种更加高级的数据库访问技术,它使用COM组件来简化数据库访问操作,并提供更加易用和灵活的方式。
除了ODBC和ADO技术外,Visual C++还支持其他一些开放数据库连接技术,如OLE DB和. NET Framework等。
这些技术都有各自的特点和适用场景,开发人员可以根据实际需求来选择合适的技术进行数据库开发工作。
Visual C++中的开放数据库连接技术为开发人员提供了丰富的选择,可以帮助他们更加高效地处理各种数据库操作。
在本文中,我们将详细介绍ODBC和ADO技术在Visual C++中的应用,以及它们之间的对比分析,同时也会探讨Visual C++中其他开放数据库连接技术的应用和优劣势。
2. 正文2.1 ODBC技术在Visual C++中的应用ODBC(Open Database Connectivity)技术是一种开放的数据库连接技术,它允许应用程序与各种数据库进行通信并访问数据。
使用ODBCAPI连接数据库
使用ODBCAPI连接数据库ODBC (Open Database Connectivity) API 是一个为了在不同的应用程序中连接数据库而设计的接口。
它提供了一个标准的方法来访问各种数据库管理系统(DBMS),包括微软的SQL Server、Oracle、MySQL等等。
ODBC API可以让应用程序开发者在不用修改代码的情况下,连接不同的数据库系统。
ODBCAPI的使用可以分为以下几个步骤:1. 安装ODBC驱动程序:首先,在开发机上安装数据库系统对应的ODBC驱动程序。
每个数据库系统都有自己的ODBC驱动程序。
例如,如果要连接MySQL数据库,可以安装MySQL Connector/ODBC驱动程序;如果要连接SQL Server数据库,可以安装SQL Server Native Client驱动程序。
2.配置ODBC数据源:在ODBC数据源管理器中配置ODBC数据源。
数据源是一个指向数据库的连接,它包含了连接数据库所需的信息,如数据库的名称、服务器的地址、登录名和密码等。
可以通过ODBC管理器创建用户数据源(只对当前用户可见)或系统数据源(对所有用户可见)。
3. 连接数据库:在应用程序中使用ODBC API连接数据库。
首先,需要调用`SQLAllocHandle`函数来分配一个ODBC环境句柄、连接句柄和语句句柄。
然后,使用`SQLSetEnvAttr`函数设置环境句柄的属性,如ODBC版本号。
接下来,使用`SQLConnect`函数连接到ODBC数据源。
此时需要提供数据源名称、登录名和密码等信息。
4. 执行SQL语句:连接成功后,就可以使用ODBC API执行SQL语句。
可以使用`SQLPrepare`函数准备SQL语句,然后使用`SQLExecute`函数执行它。
也可以直接使用`SQLExecDirect`函数准备和执行SQL语句。
执行完SQL语句后,可以使用`SQLFetch`函数获取查询结果集中的一行数据。
数据库接口技术——ODBC
ODBC的产生 的产生
PKU
1991年11月,微软宣布了ODBC,次年推出 可用版本. 1992年2月,推出了ODBC SDK 2.0版. ODBC基于SAG的SQL CAE草案所规定的语法, 共分为Core,Level 1, Level 2三种定义, 分别规范了22,16,13共51条命令,其中 29条命令甚至超越了SAG CLI中原有的定义, 功能强大而灵活.它还包括标准的错误代 码集,标准的连接和登录DBMS方法,标准 的数据类型表示等.
数据源的组成
PKU
数据
数据源
网络环境
操作系统
DBMS
ODBC的接口函数 的接口函数
PKU
I. 连接数据源(Connecting to a Data Source)
SQLAllocEnv SQLAllocConnect SQLConnect SQLPriverConnect SQLBrowseConnect
II. 取得驱动程序及数据源的相关讯息
SQLDataSource SQLGetInfo SQLGetFunctions SQLGetTypeInfo.
III. 设定及取得驱动程序的选项
SQLSetConnectOption SQLGetConnectOption SQLSetStmtOption SQLGetStmtOption.
PKU
应用程序
Application
驱动程序管理器
Drive manager
驱动程序
Drive
数据源
Data sourse
应用程序层
PKU
使用ODBC接口的应用程序可执行以下任务: 使用ODBC接口的应用程序可执行以下任务: ODBC接口的应用程序可执行以下任务
ODBC开放数据互连
ODBCODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open ServicesArchitecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。
这些API利用SQL来完成其大部分任务。
ODBC本身也提供了对SQL 语言的支持,用户可以直接将SQL语句送给ODBC。
一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS 打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。
也就是说,不论是FoxPro、Access , MYSQL还是Oracle数据库,均可用ODBC API进行访问。
由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。
一个完整的ODBC由下列几个部件组成:应用程序(Application)。
ODBC管理器(Administrator)。
该程序位于Windows 95控制面板(Control Panel)的32位ODBC内,其主要任务是管理安装的ODBC驱动程序和管理数据源。
驱动程序管理器(Driver Manager)。
驱动程序管理器包含在ODBC32.DLL中,对用户是透明的。
其任务是管理ODBC驱动程序,是ODBC中最重要的部件。
ODBC API。
ODBC 驱动程序。
是一些DLL,提供了ODBC和数据库之间的接口。
数据源。
数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。
各部件之间的关系如图下图所示:应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。
这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。
在ODBC中,ODBC API不能直接访问数据库,必须通过驱动程序管理器与数据库交换信息。
ODBC与数据源操作
9.单击“测试数据源”按钮,测试数据源 连接是否正确。如果DSN创建正确,则得 到图5-8所示的“SQL SERVER ODBC数 据源测试”的测试成功对话框。单击“确
定”按钮关闭测试结果对话框,最后单击 “确定”按钮,完成SQL SERVER 数据源 的建立工作,系统返回图7-1所示的 “ODBC数据源管理器”对话框,但“系统 DSN”的列表框中增加了一个名为 “NetShopSource”的数据源。
二、创建和配置ODBC数据源
在Windows NT/2000中,设定Web服务器使用 的数据源名称(DSN)时,必须建系统DSN,才 能确保所有的Web用户都可以使用该DSN连接到 指定得数据库。
下面以网上商店中所用的数据库NetShop为例, 建立ODBC数据源的步骤:
1.单击“开始/设置/控制面板”(或双击桌面 上“我的电脑”图标,并双击随之出现的“控制 面板”图标),出现“管理工具”图标。双击 “管理工具”图标,出现“管理工具”对话框。
数据源包含了用户安全性、数据库定位和
连接参数等与数据库进行连接的信息。也 就是说,DSN是一个代表ODBC连接的符 号,它隐藏了诸如数据库文件名、所在目 录、数据库驱动程序、用户ID、密码等细 节。所以,当建立连接时,不必考虑数据 库文件名或位置,只要给出它在ODBC中的 DSN即可。
DSN分为三种类型:用户DSN、系统DSN 和文件DSN。
在,则用选中一个数据源后单击“配置” 按钮,对该数据源进行重新设置。
3.单击“添加”按钮,将出现如图7-2所示的 “创建新数据源”对话框。因为本书中要连接的 数据库是由SQL Server创建的,故选择列表框中 的“SQL Server”,然后单击“完成”按钮。出 现图5-3所示的“建立新的数据源到SQL Server” 对话框第一页。
第12章 数据库应用程序开发
重点 1.数据库系统和ODBC 1.数据库系统和ODBC 数据库系统和 2.CRecordSet的应用 2.CRecordSet的应用 3.示例系统中数据库操作类的设计 3.示例系统中数据库操作类的设计
2009年1月
重庆理工大学计算机科学与技术系
共10页第1页
数据库应用程序是在数据库管理系统(DBMS)的支持下对数据库中的数据进 数据库应用程序是在数据库管理系统(DBMS)的支持下对数据库中的数据进 (DBMS) 行加工、处理的程序,MFC提供了两种支持 ODBC和DAO。 提供了两种支持: 行加工、处理的程序,MFC提供了两种支持:ODBC和DAO。
12.1 数据库系统的基本概念
• 数据库系统由数据库、数据库管理系统和数据库应用系 数据库系统由数据库、 部分组成,如右图: 统3部分组成,如右图: • 数据库是数据的集合,由一个或多个表组成,一般将表 数据库是数据的集合,由一个或多个表组成, 中的一行称作记录(record)或行(row) (record)或行(row), 中的一行称作记录(record)或行(row),将表的列称作字 (field)或列(column); 或列(column) 段(field)或列(column);
2009年1月 重庆理工大学计算机科学与技术系 共10页第4页
CDatabase类 12.4 CDatabase类
• 先构造一个CDatabase对象,然后调用Open成员函数: 先构造一个CDatabase对象,然后调用Open成员函数: CDatabase对象 Open成员函数
virtual BOOL Open(LPCTSTR lpszDSN, BOOL bExclusive = FALSE, BOOL bReadOnly = FALSE, LPCTSTR lpszConnect = "ODBC;", BOOL bUseCursorLib = TRUE);throw (CDBException, CMemoryException);
开放数据库互连(ODBC)
❖ 句柄是32位整数值,代表一个指针 ❖ODBC 3.0中句柄分类:
数据库原理
Database Principles
第十二章 开放数据库互连(ODBC)
21.10.2020
h
1
第十二章 开放数据库互连(ODBC)
12.1 数据库互连概述 12.2 ODBC工作原理概述 12.3 ODBC API 基础 12.4 ODBC的工作流程 12.5 小结
21.10.2020
▪ 在连接中,用数据源名来代表用户名、服务器名、所连接的数据库名等 ▪ 最终用户无需知道DBMS或其他数据管理软件、网络以及有关ODBC驱动程序的细节
21.10.2020
h
11
ODBC数据源管理(续)
例如,假设某个学校在MS SQL Server和KingbaseES上创建了两个数据库:学 校人事数据库和教学科研数据库。
▪ 语法一致性
➢语法一致性级别有最低限度SQL语法级、核心SQL语法级、扩展SQL语法级
21.10.2020
h
14
ODBC API 基础(续)
一、 函数概述 二、 句柄及其属性 三、 数据类型
21.10.2020
h
15
一、 函数概述
❖ ODBC 3.0 标准提供了76个函数接口:
▪ 分配和释放环境句柄、连接句柄、语句句柄; ▪ 连接函数(SQLDriverconnect等); ▪ 与信息相关的函数(如获取描述信息函数SQLGetinfo、SQLGetFuction); ▪ 事务处理函数(如SQLEndTran); ▪ 执行相关函数(SQLExecdirect、SQLExecute等); ▪ 编目函数,ODBC 3.0提供了11个编目函数如SQLTables、SQLColumn等,应用程
《ODBCROUTER说明》word版
ODBCRouter说明一、ODBC说明开放式数据库互连(Open Database Connectivity,ODBC)是微软提供的各种关系数据库互联的标准接口规范,力控软件遵循ODBC标准规范,定制了ODBCRouter组件程序。
这样力控实时数据库平台就可以通过标准接口与商用关系数据库进行数据共享。
将数据按照某种格式直接写入关系数据库中。
二、力控ODBCRouter介绍ODBCRouter是力控数据库与关系数据库的衔接组件,是力控数据库软件对外接口的一个拓展组件。
此组件极大的拓展了力控数据库在现场应用中的使用,方便了现场实时数据与管理数据的交互。
应用模型如图1所示;图1三、工作过程介绍ODBCRouter主要作用是:通过配置实现第一;将力控数据库中的数据(实时数据、历史数据)按照设定的格式转储到关系数据库;第二;将将关系数据库中的有关的实时、历史数据转储到力控数据库中。
例如:四、配置方法力控提供了ODBCRouter3.0扩展组件,来方便客户进行力控数据库和关系数据库之间的数据转储,当前的ODBCRouter3.0组件支持的关系数据库有ACCESS, SQL2000, SQL2005, Oracle, MySQL 以及Excel表格。
力控ODBCRouter3.0组件提供了实时单纪录,实时唯一单纪录,实时多纪录,实时唯一单纪录,历史单纪录,历史多纪录一共六种转储类型,导入和导出两种转储方式。
同时组件还提供了固定时间触发,周期触发,变化率触发三种不同形式的触发条件。
力控可以通过后台组件来调用ODBCRouter3.0组件,同时可以修改任务的转储参数,支持用户在后台组件下动态修改存储的数据库表名。
配置方式如下:1、安装力控时要安装扩展组件,安装完成后,从“开始”/“所有程序”/“力控6.0”/“扩展组件”/“ODBCRouter3.0”,打开组件图1如上图所示组件分为菜单栏,工具栏,导航栏,属性栏和状态栏2、菜单栏有文件,向导,操作和帮助(1)文件菜单图2文件菜单中包括新建、打开、保存、另存为、信息配置和退出。
《ASP程序设计及应用》电子教案第12章 Web数据库的操作
12.4 数据的添加、删除和修改 数据的添加、
12.4.2 数据的添加 在网站中,经常有添加数据记录的需求。如 在网站中,经常有添加数据记录的需求。 一个提供电子邮件服务的网站, 一个提供电子邮件服务的网站,常常有人申请 加入,这时就要用到添加用户资料的功能。 加入,这时就要用到添加用户资料的功能。添 加数据记录的方法很多,这里主要介绍两种。 加数据记录的方法很多,这里主要介绍两种。 一种是利用SQL语句中的Insert命令, SQL语句中的Insert命令 一种是利用SQL语句中的Insert命令,另一种 是利用ADO对象之一的RecordSet对象的AddNew 是利用ADO对象之一的RecordSet对象的AddNew ADO对象之一的RecordSet对象的 方法。 方法。 具体操作参见书中实例。 具体操作参见书中实例。
12.2 数据库的连接
( 4 ) 在 其 他 对 象 中 , 也 可 以 通 过 设 置 ActiveConnection参数 完成对数据源连接的设置。 参数, ActiveConnection参数 , 完成对数据源连接的设置 。 以 常用的RecordSet 对象为例, 可以使用该对象的Open RecordSet对象为例 Open方 常用的 RecordSet 对象为例 , 可以使用该对象的 Open 方 利用设置好的ActiveConnection ActiveConnection参数完成对数据库 法 , 利用设置好的 ActiveConnection参数完成对数据库 的连接,程序代码如下: 的连接,程序代码如下: Set rs=Server.CreateObject ("ADODB.RecordSet") rs.Open "t_student","Provider=sqloledb; Data Source=zjf;Initial Catalog"&_ "=txl;User ID=sa; Password=; ",adOpenStatic,adLockreadOn 果 不 采 用 DSN 连 接 数 据 库 , 在 设 置 ConnectionSTRing参数时 可以采用直接指定ODBC 参数时, ConnectionSTRing 参数时 , 可以采用直接指定 ODBC 驱动程序连接数据库, 连接SQL Server数据库的代 驱动程序连接数据库 , 连接 SQL Server 数据库的代 码如下: 码如下: Set conn = Server.CreateObject ("ADODB.Connection") sTRProvider = "Driver={SQL Server}; Server=zjf;Database=txl;UID=sa;PWD=;" conn.Open sTRProvider
【ODBC】ODBC连接数据库详细说明
【ODBC】ODBC连接数据库详细说明ODBC一、ODBC简介开放数据库互连(ODBC)是微软提出的数据库访问接口标准。
开放数据库互连定义了访问数据库的API一个规范,这些API独立于不同厂商的DBMS,也独立于具体的编程语言。
通过使用ODBC,应用程序能够使用相同的源代码和各种各样的数据库进行交互。
这使得开发者不需要以特殊的数据库管理系统DBMS为目标,或者了解不同支撑背景的数据库的详细细节,就能够开发和发布客户/服务器应用程序。
下面是ODBC应用系统的体系结构。
二、ODBC句柄应用程序运行后,为维护执行的状态,ODBC 管理器和ODBC 驱动程序中必须保持足够的控制信息。
应用程序要求ODBC 管理器和ODBC 驱动程序为ODBC环境、每个连接以及每个SQL语句分配描述/控制信息存储空间,并返回指向各个存储区的句柄供其使用。
(1)环境句柄:整个ODBC上下文的根句柄。
标识全程数据访问控制信息的内存结构,包括有效连接句柄以及当前活动连接句柄。
ODBC将环境句柄定义为HENV类型的变量。
应用程序使用单一的环境句柄,在连接到数据源以前必须申请该句柄。
(2)连接句柄:管理有关数据库会话的所有信息。
连接句柄标识每个特定的连接信息的内存结构。
ODBC将环境句柄定义为HDBC类型的变量。
应用程序在连接数据源之前申请连接句柄。
每个连接句柄与环境句柄有关,环境句柄上可以有多个与其有关的连接句柄。
(3)语句句柄:ODBC语句包括应用访问数据源的SQL语句和语句相关的管理信息,语句句柄标识每个语句管理信息的内存结构。
ODBC将语句句柄定义为HSTMT类型的变量。
应用程序在提交SQL 请求之前也必须申请语句句柄。
每个语句句柄与一个连接句柄有关,每个连接句柄上可以有多个与其有关的语句句柄。
三、ODBC程序执行流程Ø分配环境句柄基于ODBC3.X版本的应用统一使用SQLAllocHandle来分配句柄。
调用时设计不同的句柄类型就可以获得该类型的句柄。
第12章 开发ODBC数据库应用程序概述
第
12
章 O D B C
12. 12.2.2 配置数据源 ODBC兼容的数据库进行连接 兼容的数据库进行连接, 要与 ODBC 兼容的数据库进行连接 , 必须建立一个称为 Name(DSN, 数据源名) 的数据源, 通过该DSN DSN定 Data Source Name(DSN , 数据源名 ) 的数据源 , 通过该 DSN 定 位和标识指定的ODBC兼容数据库。 ODBC兼容数据库 位和标识指定的ODBC兼容数据库。 1.创建数据源 . 数据源包含了用户安全性、 数据源包含了用户安全性 、 数据库定位和连接参数等与数 据库进行连接的信息。 据库进行连接的信息。 Windows中 DSN允许用户以适当的权限通过网络连接指 在 Windows 中 , DSN 允许用户以适当的权限通过网络连接指 定的数据库。 可以分为三种类型: 用户DSN 系统DSN DSN、 DSN和文件 定的数据库 。 可以分为三种类型 : 用户 DSN 、 系统 DSN 和文件 DSN: DSN: User(用户 )DSN: 只能以指定的用户安全身份证明( 用户)DSN User( 用户 )DSN : 只能以指定的用户安全身份证明 ( 用 户名和密码)连接指定的数据库。 户名和密码)连接指定的数据库。 System(系统)DSN:所有用户都能够连接指定的数据库。 系统)DSN System(系统 )DSN:所有用户都能够连接指定的数据库。 File(文件)DSN:将连接的情况存储在一个文件中, 文件)DSN File( 文件)DSN :将连接的情况存储在一个文件中,只 有对该文件有访问权限的用户才能够连接指定的数据库。 有对该文件有访问权限的用户才能够连接指定的数据库。
12.2 管理ODBC数据源 管理ODBC数据源 ODBC
开放数据库互连
文件DSN
ODBC你可能已经注意到了,上一节中的实例有问题。如果想单独配置络上的每一台机器,它会工作得很好, 但这可能不是一个好主意。还有一种存储创建数据源所需信息的方式:文件DSN。这正是我们要在本节中讨论的。 下面的过程说明了设置文件DSN的一般方法。
图3 ODBC1.双击Control Panel(控制面板)中的32位ODBC,会看到ODBCData Source Administrator (ODBC数据源管理员)对话框。选择File DSN(文件DSN)选项卡,会看到如图3所示的对话框。要做的第一件事 是,选择存储DSN信息的地方。2.单击Look In(观察)下拉列表框,会看到一系列当前机器的目录和驱动器。 可以为DSN使用任何存储位置。我通常在络上选择数据库存储目录。使用UNC(通用命名标准)意味着,每个人都 会用相同的路径来访问DSN文件。
从结构上分,ODBC分为单束式和多束式两类。
单束式驱动程序
单束式驱动程序介于应用程序和数据库之间,像中介驱动程序一样数据提供一个统一的数据访问方式。当用 户进行数据库操作时,应用程序传递一个ODBC函数调用给ODBC驱动程序管理器,由ODBC API判断该调用是由它直 接处理并将结果返回还是送交驱动程序执行并将结果返回。由上可见,单束式驱动程序本身是一个数据库引擎, 由它直接可完成对数据库的操作,尽管该数据库可能位于络的任何地方。
1. Uses ODBC INI file to map a data source name to a specific driver DLL. 2. Processes server ODBC initialization calls. 3. Provides entry points to ODBC functions for each driver. 4. Provides parameter validation and sequence validation for ODBC calls.
利用ODBC管理数据库
利用ODBC管理数据库利用开放数据库互连(Open Database Connectivity,简称ODBC)实现。
使用ODBC 可以避免应用程序随数据库的改变而改变,针对不同类型数据库使用不同的API。
采用ODBC可以大大缩短开发应用程序的时间。
例如:在开发Turbo C 与FoxPro的接口时,需要研究DBF文件的结构,并在设计界面(API)上占用许多时间。
针对另一个数据库,就要重新研究相应的API。
使用ODBC,更改数据库只需要在应用程序中调整相应的驱动程序。
ODBC通过使用驱动程序来提供数据库的独立性。
因此,对于不同的数据库就要求使用不同的数据库驱动程序。
驱动程序实际上是一个支持ODBC函数调用的模块,通常就是一个动态链接库DLL,应用程序就是通过调用动态链接上的驱动程序所支持的函数来操作数据库的。
目前,很多应用程序需要用到数据库,幸好,微软提供ODBC,Windows9x 的控制面板中都有出现。
它非常方便地解决了不同数据库需要的连接。
这里笔者用VC++5.0编写了一个简单的利用ODBC管理数据库的应用程序Student。
需要完成如下一些步骤:1. 用Access97创建StuRecord.mdb数据库(其中包含一个表Student.db),作为数据源。
2. 在操作系统中通过ODBC注册数据库StuRecord.mdb。
3. 用vc++5.0中的向导AppWizard创建基本的数据库应用程序。
4.创建数据库显示。
5.向基本数据库添加一些代码来实现一些AppWizard不能支持的功能,如删除,添加等功能。
具体实现如下:一、用Access97创建StuRecord.mdb数据库,其中表Student.db中内容如下图1所示:二、1.在Windows 98的控制面板Control Panel中用鼠标点击32-Bit ODB C图标。
此时,出现Data Sources对话框。
如图2所示:2.单击Add按钮,出现Create New Data Source对话框。
c++中使用ODBC连接数据库
12.1.2配置ODBC数据源
配置ODBC数据源的步骤如下:
(4)然后选择数据源,按下数据源按钮,弹出如图12-8所示的 Datasouce Options对话框,选择已经注册好的数据源 Student_Access。在Recordset type中,Snapshots是一个 静态数据库,每一个表都是一个从打开的数据源读取出来的。 而当用户在一个Dynasets中翻阅记录时,会随时显示其它人 或自己对某个数据的修改,不论对这个数据的修改是在应用 程序中还是其它地方。这里选Dynasets,击OK按钮。
12.1.3MFC提供的有关ODBC的常用类
1.CRecordView类
一个CRecordView对象就是用一个视图中的控件来 显示数据库中的记录。CRecordView类使用了动 态数据交换(DDX)和数据库交换(RFX),在 视图上的控件和数据源中的数据库之间进行数据 交换。
一个CRecordView类对象包括菜单、工具条及对话 框(称为FORM表单),负责记录集的用户界面。
(2)将CODBCView类的基类设置成CrecordView。 由于CrecordView的基类是CformView,因此它需 要与之相关联的表单资源。
(3)MFC为用户自动创建了用于浏览数据表记录的工 具按钮和相应的“记录”菜单项。若用户选择这 些浏览记录命令,系统会自动调用相应的函数来 移动数据表的当前位置。
第12章数据库编程
• 现行的数据库模型主要有4种:层次模型、网状模 型、关系模型和面向对象模型。现在最流行的数 据库软件都是关系模型,最有希望的模型就是面 向对象模型。现有的数据库软件有很多,如大型 数据库Oracle、SQL Server,小型数据库Access 等,都支持关系模型,至于数据库系统的选择完 全根据用户的需求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、数据库驱动程序
ODBC通过驱动程序来提供应用系统与数据库平台的独立性 ODBC应用程序不能直接存取数据库
其各种操作请求由驱动程序管理器提交给某个RDBMS的
ODBC驱动程序 通过调用驱动程序所支持的函数来存取数据库。 数据库的操作结果也通过驱动程序返回给应用程序。 如果应用程序要操纵不同的数据库,就要动态地链接到不同 的驱动程序上。
2018/10/4 Database Principles 12
ODBC数据源管理(续)
例如,假设某个学校在MS SQL Server和KingbaseES上创 建了两个数据库:学校人事数据库和教学科研数据库。
学校的信息系统要从这两个数库中存取数据
为方便与两个数据库连接,为学校人事数据库创建一个数据 源名PERSON,为教学科研数据库创建一个名为EDU的数 据源。 当要访问每一个数据库时,只要与PERSON和EDU连接即
可,不需要记住使用的驱动程序、服务器名称、数据库名
2018/10/4 Database Principles 13
第十二章 开放数据库互连(ODBC)
12.1 数据库互连概述 12.2 ODBC工作原理概述 12.3 ODBC API 基础
12.4 ODBC的工作流程
12.5 小结
2018/10/4 Database Principles 14
2018/10/4 Database Principles 5
第十二章 开放数据库互连(ODBC)
12.1 数据库互连概述 12.2 ODBC工作原理概述 12.3 ODBC API 基础
12.4 ODBC的工作流程
12.5 小结
2018/10/4 Database Principles 6
12.2 ODBC工作原理概述
数据源对最终用户是透明的
ODBC给每个被访问的数据源指定唯一的数据源名(Data Source Name,简称DSN),并映射到所有必要的、用来存取数据的低层软件
在连接中,用数据源名来代表用户名、服务器名、所连接的数据库名
等 最终用户无需知道DBMS或其他数据管理软件、网络以及有关ODBC 驱动程序的细节
一、 函数概述 二、 句柄及其属性 三、 数据类型
2018/10/4
Database Principles 16
一、 函数概述
ODBC 3.0 标准提供了76个函数接口:
分配和释放环境句柄、连接句柄、语句句柄; 连接函数(SQLDriverconnect等); 与信息相关的函数(如获取描述信息函数SQLGetinfo、 SQLGetFuction); 事务处理函数(如SQLEndTran); 执行相关函数(SQLExecdirect、SQLExecute等); 编目函数,ODBC 3.0提供了11个编目函数如SQLTables、 SQLColumn等,应用程序可以通过对编目函数的调用来获 取数据字典的信息如权限、表结构等
2018/10/4 Database Principles 8
二、驱动程序管理器
驱动程序管理器:用来管理各种驱动程序
– 包含在ODBC32.DLL中 – 管理应用程序和驱动程序之间的通信 建立、配置或删除数据源并查看系统当前所安装的数据库ODBC 驱动程序 – 主要功能: 装载ODBC驱动程序 选择和连接正确的驱动程序 管理数据源 检查ODBC调用参数的合法性 记录ODBC函数的调用等
2018/10/4 Database Principles 10
数据库驱动程序(续)
ODBC驱动程序类型: 单束
数据源和应用程序在同一台机器上 驱动程序直接完成对数据文件的I/O操作 驱动程序相当于数据管理器
多束
支持客户机/服务器、客户机/应用服务器/数据库服务器等网络 环境下的数据访问
ODBC应用系统的体系结构 :
一、 用户应用程序
二、 驱动程序管理器
三、 数据库驱动程序
四、 ODBC数据源管理
2018/10/4
Database Principles
7
一、 应用程序
ODBC应用程序包括的内容: – 请求连接数据库; – 向数据源发送SQL语句; – 为SQL语句执行结果分配存储空间,定义所读取的数 据格式; – 获取数据库操作结果,或处理错误; – 进行数据处理并向用户提交处理结果; – 请求事务的提交和回滚操作; – 断开与数据源的连接。
数据库原理
Database Principles
五邑大学信息学院
何国辉 教授
2018/10/4
Database Principles
1
数据库原理
Database Principles
第十二章
开放数据库互连(ODBC)
2018/10/4
Database Principles
2
第十二章 开放数据库互连(ODBC)
12.3 ODBC API 基础
ODBC 应用程序接口的一致性
API一致性
API一致性级别有核心级、扩展1级、扩展2级
语法一致性
语法一致性级别有最低限度SQL语法级、核心SQL语法 级、扩展SQL语法级
2018/10/4 Database Principles 15
ODBC API 基础(续)
12.1 数据库互连概述 12.2 ODBC工作原理概述 12.3 ODBC API 基础
12.4 ODBC的工作流程
12.5 小结
2018/10/4 Database Principles 3
12.1 数据库互连概述
ODBC产生的原因:
由于不同的数据库管理系统的存在,在某个RDBMS下 编写的应用程序就不能在另一个RDBMS下运行 许多应用程序需要共享多个部门的数据资源,访问不 同的RDBMS
2018/10/4
Database Principles
4
数据库互连概述(续)
ODBC:
是微软公司开放服务体系(Windows Open Services
Architecture,WOSA)中有关数据库的一个组成部分
提供了一组访问数据库的标准API
ODBC约束力:
规范应用开发 规范RDBMS应用接口
由驱动程序完成数据库访问请求的提交和结果集接收
应用程序使用驱动程序提供的结果集管理接口操纵执行后的结 果数据
2018/10/4 Database Principles 11
四、ODBC数据源管理
数据源:是最终用户需要访问的数据,包含了数据库位置和数据库 类型等信息,是一种数据连接的抽象