Download presentation
Presentation is loading. Please wait.
1
An Introduction to Database System
数据库系统概论 An Introduction to Database System 第九章 数据库系统的开发技术 (补充内容)
2
9.1 数据库系统外部的体系结构 单用户结构 主从式结构(集中式结构) 分布式结构 文件服务器结构 客户/服务器结构(C/S)
浏览器/应用服务器/数据库服务器结构(B/S)
3
1. 单用户数据库系统 整个数据库系统(应用程序、DBMS、数据)装在一台计算机上,为一个用户独占,不同机器之间不能共享数据。
早期的最简单的数据库系统(dBASE、Foxpro等) 例如一个企业的各个部门都使用本部门的机器来管理本部门的数据,各个部门的机器是独立的。由于不同部门之间不能共享数据,因此企业内部存在大量的冗余数据。例如人事部门、会计部门、技术部门必须重复存放每一名职工的一些基本信息(职工号、姓名等)。
4
单机方式、网络方式的不同 (a) 单机方式 (b)网络方式
5
2. 主从式结构的数据库系统 一个主机带多个终端的多用户结构
数据库系统,包括应用程序、DBMS、数据,都集中存放在主机(大型机、小型机)上,所有处理任务都由主机来完成 各个用户通过主机的终端并发地存取数据库,共享数据资源
6
主从式结构的数据库系统 终端 主机
7
主从式结构的数据库系统(续) 优点 缺点 易于管理、控制与维护。
当终端用户数目增加到一定程度后,主机的任务会过分繁重,成为瓶颈,从而使系统性能下降。 系统的可靠性依赖主机,当主机出现故障时,整个系统都不能使用。
8
3.分布式数据库系统概述 分布式数据库系统是由若干个站集合而成。这些站又称为节点,它们在通讯网络中联接在一起,每个节点都是一个独立的数据库系统,它们都拥有各自的数据库、中央处理机、终端,以及各自的局部数据库管理系统。因此分布式数据库系统可以看作是一系列集中式数据库系统的联合。它们在逻辑上属于同一系统,但在物理结构上是分布式的。
9
分布式数据库系统特点 分布透明性 节点自治和协调工作
分布式透明性就是在编写程序时好象数据没有被分布一样,因此把数据进行转移不会影响程序的正确性。但程序的执行速度会有所降低。 节点自治和协调工作 网络中的每个结点都可以独立处理本地数据库中的数据,执行局部应用 同时也可以同时存取和处理多个异地数据库中的数据,执行全局应用
10
分布式数据库系统特点(续) 数据冗余 数据冗余在分布式系统中被看作是所需要的特性,其原因在于:首先,如果在需要的节点复制数据,则可以提高局部的应用性。其次,当某节点发生故障时,可以操作其它节点上的复制数据,因此这可以增加系统的有效性。
11
分布式结构的数据库系统(续) 优点 它可以解决组织机构分散而数据需要相互联系的问题。比如银行系统,总行与各分行处于不同的城市或城市中的各个地区,在业务上它们需要处理各自的数据,也需要彼此之间的交换和处理,这就需要分布式的系统。 如果一个组织机构需要增加新的相对自主的组织单位来扩充机构,则分布式数据库系统可以在对当前机构影响最小的情况下进行扩充。 均衡负载的需要。数据的分解采用使局部应用达到最大,这使得各处理机之间的相互干扰降到最低。负载在各处理机之间分担,可以避免临界瓶颈。 当现有机构中已存在几个数据库系统,而且实现全局应用的必要性增加时,就可以由这些数据库自下而上构成分布式数据库系统。 相等规模的分布式数据库系统在出现故障的几率上不会比集中式数据库系统低,但由于其故障的影响仅限于局部数据应用,因此就整个系统来讲它的可靠性是比较高的。
12
缺点 数据的分布存放给数据的处理、管理与维护带来困难。 当用户需要经常访问远程数据时,系统效率会明显地受到网络传输的制约。
13
4.文件服务器结构 文件服务器 … 文件1 文件2 文件n … 微机1 微机2 微机n
14
文件服务器结构 数据库按文件形式保存在文件服务器上; 应用程序和简化了的DBMS在客户机上; 应用程序以文件形式存取文件服务器上的数据;
文件服务器将用户所需的数据以整个文件的形式传送到客户机上。
15
文件服务器方式(结构示意图) 数据库 工作站1 应用程序 工作站n 文件请求 文件 网络文件服务器 ……
16
结构和特点 结构: 特点: 文件服务器:提供资源(数据)的集中管理和访问路径。 客户工作站:运行应用程序,所有命令由自己执行
共享资源数据集中管理 应用程序在各个工作站上
17
优点和缺点 优点 缺点: 费用低廉 配置比较灵活,可以方便的增减工作站
客户端的计算机要有足够的能力,才能完成应用处理,可能导致计算机不断升级。 文件服务器将数据全部传到工作站上,由用户找到需要的数据,导致大量无用的数据在网上传输,无法提高响应速度。
18
文件服务器方式下的工作流程 Select * from 学生 where 班级名=“05网一” 响应请求 并返回整个数据 提出SQL请求
有10000条 记录的数据库 提出SQL请求 响应请求 并返回整个数据 本机完成查询 Select * from 学生 where 班级名=“05网一”
19
基于文件服务器方式的数据库 dBASE、FoxBASE、Foxpro、Access是小型的基于文件服务器方式的数据库软件。
20
5.客户/服务器结构的数据库系统 应用软件1 应用软件2 … 应用软件n 客户端 局域网 DBMS 服务器端 数据库
21
客户/服务器结构的数据库系统 把DBMS功能和应用分开 网络中某个(些)结点上的计算机专门用于执行DBMS功能,称为数据库服务器,简称服务器
与主从式结构的区别 主从式数据库系统中的主机和分布式数据库系统中的每个结点机既执行DBMS功能又执行应用程序。
22
客户/服务器方式的结构示意图 数据库 工作站1 应用程序 工作站n 请求 结果 网络文件服务器 应用程序
23
客户/服务器方式下的工作流程 Select * from 学生where 班级名=“04网一” SQL查询命令 在服务器端执行
有10000条 记录的数据库 提出SQL请求 SQL查询命令 在服务器端执行 接受查询结果 Select * from 学生where 班级名=“04网一”
24
特点 服务器端帮助用户完成数据的检索工作,实现了用户拥有两个处理器同时工作,减少了数据的传输量 服务器需要认识客户端发出的命令
SQL : 统一的数据库标准语言
25
基于客户/服务器方式的数据库 SQL Server、Sybase、Oracle是大型的基于客户/服务器方式的数据库软件
26
客户/服务器体系结构内部构成 服务器端 客户端 应用软件 连接件 网络协议 网络协议 连接件 DBMS 操作系统 数据库
27
连接件:实现客户端和服务器端通讯的软件接口技术或编程函数。客户端和服务器端通过连接件执行标准的命令和数据传递。
连接件只是定义一些标准,所以符合标准的客户和服务都可以方便的交流。
28
客户/服务器结构的优点 分布式:分布式处理模式。客户端处理应用逻辑和与用户的交互工作,服务器重点负责数据存储、查询和维护工作。客户端的用户请求被传送到数据库服务器,数据库服务器进行处理后,只将结果返回给用户,从而显著减少了数据传输量 开放性:数据库更加开放 客户与服务器一般都能在多种不同的硬件和软件平台上运行 可以使用不同厂商的数据库应用开发工具
29
客户/服务器结构的优点 透明性:服务器位置的透明性。 可扩展性:可以增加客户机的数量。 可维护性:
30
客户/服务器结构的缺点 “胖客户”问题: 系统安装复杂,工作量大。 应用维护困难,难于保密,造成安全性差。
相同的应用程序要重复安装在每一台客户机上,从系统总体来看,大大浪费了系统资源。 系统规模达到数百数千台客户机,它们的硬件配置、 操作系统又常常不同,要为每一个客户机安装应用程 序和相应的工具模块,其安装维护代价便不可接受了。 “瘦服务”问题:服务器为单纯的数据库服务器
31
选择文件/服务器与客户/服务器结构的原则
网络规模的大小 大型网络,客户/服务器占据优势,提高效率; 小型网络,客户/服务器增加成本,主要是服务器的性能。 业务量的大小 业务量小不能充分发挥大服务器的作用 软件开发费用 客户/服务器方式软件开发费用高 系统安全性的考虑 客户/服务器方式,安全性高。
32
三层结构的客户/服务器体系结构 客户机1 客户机2 … 客户机n 第一层 应用服务器 第二层 数据库服务器 第三层 数据库
33
6.浏览器/应用服务器/数据库服务器结构 客户端: 服务器端分为两部分: 浏览器软件、用户界面 浏览器的界面统一,广大用户容易掌握
大大减少了培训时间与费用。 服务器端分为两部分: Web服务器、应用服务器 数据库服务器等 大大减少了系统开发和维护代价 能够支持数万甚至更多的用户
34
B/S体系结构的组成 浏览器 浏览器 浏览器 … 表示层 服务层 数据库层 数据库 应用服务器 数据库服务器
Internet/Intranet 应用服务器 服务层 数据库服务器 数据库层 数据库
36
B/S三层体系结构采用三层客户/服务器结构,在数据管理层(Server)和用户界面层(Client)增加了一层结构,称为中间件(Middleware),使整个体系结构成为三层。三层结构是伴随着中间件技术的成熟而兴起的,核心概念是利用中间件将应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次
37
B/S结构,即Browser/Server(浏览器/服务器)结构,就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件。它是随着Internet技术的兴起,对C/S结构的一种变化和改进。主要利用了不断成熟的WWW浏览器技术,结合多种Script语言(VBScript、JavaScript…)和ActiveX技术,是一种全新的软件系统构造技术。 在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
38
浏览器/服务器局域网互连结构 浏览器 浏览器 … 浏览器 客户端 局域网 应用服务 服务器端 数据库服务 数据库
39
Internet 与局域网互连结构 浏览器 浏览器 浏览器 … 客户端 Internet 局域网 服务器端 数据库服务 应用服务 数据库
40
浏览器(客户端) 常用浏览器: Microsoft Internet Exploroer(IE) Netscape Navigator
41
应用服务器 用途:提供WWW服务,支持数据库访问技术(ODBC、JDBC、OLE DB、ADO)管理与配置应用系统;
可以安装以下Wed服务: IIS Apache Netscape—NES Java Web Server Application Server WebSphere 使用以下技术与数据库相连 CGI、ASP、PHP、JSP 网站构建时平台的选择: 1)Solaris+NetScape enterprise+perl+数据库 2)NT+IIS+ASP+Access(Sql Server 2000) 3)Linux+Apache+PHP+Mysql Linux+Apache+JSP+Oracle
42
数据库服务器 单机数据库 网络数据库
43
易于把握、成本较低:局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,易于把握、成本也是较低的。
是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库; 支持跨平台的访问,特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。
44
9.2 开放式数据库互连 ODBC [Open Database Connectivity] 开放式数据库互连。
是由微软公司1991年提出的一个用于访问数据库的统一界面标准,随着客户机/服务器体系结构在各行业领域广泛应用,多种数据库之间的互连访问成为一个突出的问题。ODBC提供一个应用程序界面,可以通过各种不同类型的数据库访问信息,包括Access, dBase, DB2等。微软的WINDOWS是第一个提供ODBC的产品,现在UNIX,OS/2和Macintosh等操作平台都有其ODBC版本。
45
API [ Application Program Interface] 应用程序界面
是一种语言及信息格式,能让一种计算机应用和操作系统或其他计算机程序,如数据管理程序、ERP应用等进行沟通交流。应用程序界面提供了一种让不同的计算机互相交流、协同工作并共享数据和函数的方式。 ODBC 接口函数 能够使客户端的SQL语言与数据库服务器相互结合,完成具体的操作。
46
ODBC管理器(Administrator)。该程序位于Windows 98控制面板(Control Panel)的32位ODBC内,其主要任务是管理安装的ODBC驱动程序和管理数据源 。
47
ODBC数据应用程序 驱动程序管理器 Oracle FoxPro Sybase DB2 Oracle FoxPro Sybase DB2
SQLServer 驱动程序 Oracle FoxPro Sybase DB2 SQLServer 数据源 Oracle 数据源 FoxPro 数据源 Sybase 数据源 DB2 数据源 DB DB DB DB DB ODBC的分层体系结构
48
应用程序 (Application,你的程序)
驱动程序 管理器 (Driver manager) ODBC 驱动程序(ODBC Drivers) 数据源 (Data Sources,数据库) 这四个组件的核心是驱动程序管理器。 你可把它想象成你的监工。你告诉它你希望他作什么,然后它把你的要求传达给它的工人(ODBC 驱动程序)并完成工作。如果工人有什么想告诉你的,它会与监工(驱动程序管理器)说,由监工传达给你。工人们很明白他们应作什么,因此他们会为你很好的完成工作。 通过这样的模式,我们并不与数据库驱动程序直接通信。你只需告诉数据库管理器你想要做什么。而使用恰当的ODBC驱动程序来实现你的目的则是驱动程序管理器的事。每个ODBC 驱动程序对于它所对应的数据库均有足够了解。各部件各司其职,极大的简化了工作量。 你的程序<---->驱动程序管理器<----> ODBC驱动程序 <----> 数据库
49
应用程序 功能:调用ODBC函数 连接数据库 向数据源发送SQL语句 检索结果 处理错误 提交或回滚事务 断开数据源
50
驱动程序管理器 为应用程序加载DBMS驱动程序 检查ODBC调用参数的合法性和记录ODBC函数的调用 调用正确的DBMS驱动程序
提供驱动程序信息 驱动程序管理器包含在ODBC32.DLL中,对用户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件
51
ODBC 驱动程序 是一些DLL文件,提供了ODBC和数据库之间的接口 。 网络环境下基于单层驱动程序的应用程序结构 ODBC数据库应用程序
工作站 驱动程序管理器 单层驱动程序(包括数据库引擎) 网络 文件服务器 数据库文件
52
ODBC 驱动程序(双层) 数据库引擎 ODBC数据库应用程序 驱动程序管理器 网络环境下基于两层驱动程序的应用程序结构 客户端
双层驱动程序 客户端网络支撑软件 网络 SQL请求 操作结果 服务器网络支撑软件 数据库引擎 数据库文件 数据库服务器
53
数据源DSN(Data Source Name)
是用于指定ODBC与相关的驱动程序相对应的一个入口,所有DSN的信息由系统进行管理,一般来讲当应用程序要使用ODBC访问数据库时,就需要指定一个DSN以便于连接到一个指定的ODBC驱动程序。 数据源包含了数据库位置、连接参数和数据库类型等信息,实际上是一种数据连接的抽象。
54
DSN分类 系统DSN:可以被登陆到系统中的所有用户使用。 用户DSN:为特定用户建立的,只能被建立他的用户使用。
用户dsn只能用于本用户。系统dsn和文件dsn的区别只在于连接信息的存放位置不同:系统dsn存放在odbc储存区里,而文件dsn则放在一个文本文件中。
55
在asp中使用它们时,写法如下: A. sql server: 用系统dsn: connstr="DSN=dsnname; UID=xx; PWD=xxx;DATABASE=dbname" 用文件dsn: connstr="FILEDSN=xx; UID=xx; PWD=xxx;DATABASE=dbname" 还可以用连接字符串(从而不用再建立dsn): connstr="DRIVER={SQL SERVER};SERVER=servername;UID=xx;PWD=xxx“ B. access: 用系统dsn: connstr="DSN=dsnname" (或者为:connstr="DSN=dsnname;UID=xx;PWD=xxx") 用文件dsn: connstr="FILEDSN=xx" 还可以用连接字符串(从而不用再建立dsn): connstr="DRIVER={Microsoft Access Driver};DBQ=d:\abc\abc.mdb"
56
OLE DB OLE DB是一个低层的基于组建对象模型(COM) 的数据访问接口,它向应用程序提供了一个统一的数据访问方法,用它可以访问各种数据源,包括关系型数据库、电子邮件系统、自定义的商业对象。
57
VB应用程序 ADO OLE DB RDBMS 目录管理 OLE DB模型
58
如果你希望绕过ODBC,直接通过OLEDB访问SQL Server(一般来讲这种方法速度更快),请使用下面这种连接串: strConnString ="Provider=SQLOLEDB.1;Password=mypassword;" & _ "Persist Security Info=True;UserID=myuid;" _ & "Initial Catalog=mydbname;" & _ "DataSource=myserver;ConnectTimeout=15" 通过OLEDB访问Access的连接串Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\vblx\教学.mdb;Persist Security Info=False
59
JDBC Sun公司重新设计了一个适合于Java使用的数据库操作引擎,并于1996年3月份发布。它沿袭了ODBC的设计思想,并且采用了与ODBC一样的设计基础。为了使JDBC更加Power,还开发了一个“JDBC-ODBC的翻译器”(也被称为桥接器),通过它,还可以使用数据库的ODBC驱动程序。
60
JDBC定义了一套API对象和方法,用来访问、操作数据库系统。在一个使用JDBC的Java程序中,首先将打开一个数据库的连接,生成一个语句(Statement)对象,使用这个对象将SQL语句传送给数据库系统,然后用它检索结果。 JDBC类包含在java.sql包中,我们可以使用这个包中的对象和方法从数据库读取数据或写入数据。 JDBC提供了两种不同的访问数据库的机器。
61
: 通过JDBC-ODBC桥接器访问数据库
62
。 通过HTTP侦听程序访问数据库
63
9.4 数据库访问对象 ADO(ActiveX Data Objects)ActiveX数据对象
是微软最新的数据访问技术,与OLE DB一起工作。 在Visual Basic中使用ADO 在一个打开的Visual Basic 6.0的工程中,选择菜单〔工程〕 / 〔引用〕命令,出现“引用”对话框。在“可用的引用”列表框中选择Microsoft ActiveX Data Objects 2.7 选项,单击〔确定〕按钮,就可以在程序中加入对ADO的引用了。
64
使用ADO可以实现以下目的: 连接一个本地数据库或远程数据库
打开一个指定的数据库表,或定义一个基于结构化查询语言(SQL)的查询或存储过程或该数据库中的表的视图的记录集合 将数据字段的值传递给数据绑定的控件,可以在这些控件中显示或更改这些数值 添加新的记录,或根据对绑定的控件中的数据的更改来更新一个数据库
65
ADO对象模型 Connection对象 Error集合 Command对象 Recordset对象 Parameter集合 Error对象
Fields集合 Error对象 Parameter对象 Field对象 ADO对象模型
66
ADO的可编程对象 对象名 描述 Connection 连接数据来源 Command 从数据源获取所需数据的命令信息 Recordset
所获取的一组记录组成的记录集 Error 在访问数据时,由数据源所返回的错误信息 Parameter 与命令对象相关的参数 Field 包含了记录集中某个字段的信息
67
ADO的内置对象 一、连接对象( Connection ) 常用的属性与方法:
用来与数据库建立连接。在建立连接前,最主要的是需要设置连接字符串,用来指定连接数据库所用的驱动程序、数据源名称、用户名和密码等。 常用的属性与方法: ConnectionString属性:连接字符串,在打开连接前需要设置 ConnectionTimeout和Mode属性:超时时间和连接模式,一般在打开连接前也需要设置 CursorLocation属性:设置或者返回游标位置 DefaultDatabase属性:为连接指定一个默认的据库 Provider属性:为连接指定一个驱动程序,可以包括在ConnectionString 中 Open,Close 方法:建立或中断一个连接 Execute方法:在连接上执行命令,比如执行一个SQL语句 Errors对象:数据源返回的错误信息 (eg)
68
如何连接 利用Connection对象可以创建一个数据源的连接.应用的方法是Connection对象的Open方法. 语法: Connection对象.Open ConnectionString, UserID, PassWord, OpenOptions 其中: Connection对象为你定义的Connection对象的实例; ConnectionString为可选项,包含了连接的数据库的信息; UserID 可选项,包含建立连接的用户名; PassWord为可选项,包含建立连接的用户密码; OpenOptions为可选项,假如设置为adConnectAsync,则连接将异步打开.
69
使用数据源的连接 1.SQL Server 的数据源 Cna.close ‘关闭连接 打开一个连接:
Dim cna as new adodb.connection Dim cnastring as string Cnastring=“dsn=sqlpubs;uid=sa;pwd=1234” ‘SQL DSN 数据源的连接字符串 With cna .connectionstring=cnastring .connectiontimeout=10 .open End with 或:cna.open “dsn=sqlpubs;uid=sa;pwd=1234” Cna.close ‘关闭连接
70
2. Access DSN 数据源的连接字符串 Cnb.close ‘关闭连接
Dim cna as new adodb.connection Dim cnbstring as string Cnbstring=“dsn=aa;uid=;pwd=” ‘Access DSN 数据源的连接字符串 With cnb .connectionstring=cnbstring .connectiontimeout=10 .open End with 或:cnb.open “dsn=aa;uid=;pwd=” Cnb.close ‘关闭连接
71
直接使用数据库文件名建立连接 1、SQL Server 的连接字符串
“driver={SQL Server};server=bjz;database=pubs;uid=sa;pwd=1234” 2、Access的连接字符串 (1)“driver=Microsoft access driver(*.mdb);DBQ=“ & app.path & “\student.mdb” (2)使用OLE DB 提供者建立连接 "provider=Microsoft.Jet.OLEDB.4.0;Data Source=“ & App.Path & ”\student.mdb" & “user id=;password=” 链
72
二、命令对象(Command) 常用的属性与方法: ActiveConnection属性:将一个命令行对象与一个打开的连接关联
定义了数据库的有一系列操作。使用命令对象来查询数据库,查询结果以数据集对象(Recordset)形式返回。命令类在操纵数据库前需要与一个已经打开的连接对象(Connection)建立关联。 常用的属性与方法: ActiveConnection属性:将一个命令行对象与一个打开的连接关联 CommandText属性:定义命令行的内容,比如SQL语句等 CommandType属性:指定命令的类型 CommandTimeout属性:指定服务器等待一条命令执行的时间 Execute方法:执行命令并返回一个数据集对象(Recordset)
73
三、数据集对象(Recordset) 定义了从数据库返回的一系列记录的集合。通过数据集可以对记录及组成记录的列进行各种操作。
定义了从数据库返回的一系列记录的集合。通过数据集可以对记录及组成记录的列进行各种操作。 常用的属性与方法: RecordCount属性:返回记录集中记录的条数 BOF,EOF属性:返回记录集中游标的当前位置是否是记录集的头或尾 MoveNext,MovePre:将记录集中的游标向后、前移动一个位置 MoveFirst,MoveLast:将记录集中的游标移动到最前或最后
74
打开记录集对象 实际上记录集返回的是一个从数据库取回的查询结果集
打开记录集对象 实际上记录集返回的是一个从数据库取回的查询结果集.因此他有两种打开方法:一种使用记录集的Open方法,另一种是用Connection对象的Execute方法.
75
(a)记录集的Open方法 语法: Recordset
(a)记录集的Open方法 语法: Recordset.Open Source, ActiveConnection, CursorType, LockType, Options 其中: Recordset为所定义的记录集对象的实例. Source可选项,指明了所打开的记录源信息.可以是合法的命令,对象变量名,SQL语句,表名,存储过程调用,或保存记录集的文件名. ActiveConnection可选项,合法的已打开的Connection对象的变量名,或者是包含ConnectionString参数的字符串. CursorType可选项,确定打开记录集对象使用的指针类型. LockType可选项 确定打开记录集对象使用的锁定类型.
76
(b)Connection对象的Execute方法 语法: Set recordset=
Connection.Execute(CommandText,RecordsAffected,Options) 参数说明: CommandText 一个字符串,返回要执行的SQL命令,表名,存储过程或指定文本. RecordsAffected 可选项,Long类型的值,返回操作影响的记录数. Options 可选项,Long类型值,指明如何处理CommandText参数.
77
(3)使用记录集 (a)添加新的记录: 在ADO中添加新的记录用的方法为:AddNew 它的语法为: Recordset
(3)使用记录集 (a)添加新的记录: 在ADO中添加新的记录用的方法为:AddNew 它的语法为: Recordset.AddNew FieldList, Values Recordset为记录集对象实例 FieldList为一个字段名,或者是一个字段数组. Values为给要加信息的字段赋的值,如果FiledList为一个字段名,那么Values应为一个单个的数值,假如FiledList为一个字段数组,那么Values必须也为一个个数、类型与FieldList相同的数组. 用完AddNew方法为记录集添加新的记录后,应使用UpDate将所添加的的数据存储在数据库中.
78
(b)删除记录 在ADO中删除记录集中的数据的方法为:Delete方法,这与DAO对象的方法相同,但是在ADO中它的能力增强了,可以删掉一组记录了. 它的语法如下: Recordset.Delete AffectRecords 其中的,AffectRecords参数是确定Delete方法作用的方式的,它的取值如下: adAffectCurrent 只删除当前的记录 adAffectGroup 删除符合Filter属性设置的那些记录.为了一次能删除一组数据,应设置Filter属性.
79
(c)查询记录 在ADO中查询的方法很灵活,有几种查询的方法. 使用连接对象的Execute方法执行SQL命令,返回查询记录集
(c)查询记录 在ADO中查询的方法很灵活,有几种查询的方法. 使用连接对象的Execute方法执行SQL命令,返回查询记录集. 使用Command对象的Execute方法执行CommandText属性中设置的SQL命令,返回查询记录集. Command对象的Execute方法的语法如下: Command.Execute RecordsAffected, Parameters, Options '不返回记录集 或者 Set Rscordset= command.Execute(RecordsAffected,Parameters,Options) '返回记录集 CommandText的语法为: Command.CommandText=stringvariable 其中: stringvariable为字符串变量,包含SQL语句,表名或存储过程.
80
对ADO对象的主要操作包括6个方面: 1. 连接到数据源。这是可选的、通常涉及ADO的Connection对象。 2
对ADO对象的主要操作包括6个方面: 1.连接到数据源。这是可选的、通常涉及ADO的Connection对象。 2.向数据源提交命令。通常涉及ADO的Command对象。在查询中可以与参数对象(Parameter)协同使用。 3.执行命令,比如一个SELECT脚本。 4.如果提交的命令有结果返回,可以通过ADO的Recordset对象对结果进行操作,数据存储在缓存中。 5.如果合适,可将缓存中被修改的数据更新到物理的存储上。 6.提供错误检测。通常涉及ADO的Error对象。
81
1.打开Connection对象 Dim cn As ADODB.Connection ’声明ADODB.Connection对象变量 Dim strCN As String ’声明存放连接串的字符串变量 Set cn= New ADODB. Connection ’实例化Connection对象 ’生成连接串(ConnectionString) strCN="Provider=Microsoft.Jet.Oledb.3.51; UserID=Admin;"&_ "DataSource=D:\MicrosoftVisual Studio\VB98\Nwind.mdb;" cn.Open strCN ’调用Connection对象的方法Open连接数据源
82
2.创建Command对象 Dim cmd As ADODB.Command Set cmd=New ADODB. Command’实例化Command对象
83
3.执行查询 以Command对象为例。 Dim rs As New ADODB.Recordset Set cmd.ActiveConnection=cn’绑定激活的Connection对象实例 cmd.CommandText=“SELECT*from Customers”’生成SQL脚本 Set rs=cmd.Execute’执行查询 上述的代码仅仅是一种查询途径,此外,ADO的Connection对象的Execute方法和Recordset对象的Open方法也提供了查询能力。返回的结果可以被保存在一个Recordset对象实例中以便后续的数据处理和操纵。例如: Dim rs As NewADODB.Recordset rs.Open cmdtext,cn,adOpenDymanic,adLockBatchOptimistic
84
4.显示和操纵数据 rs.MoveFirst Do While Not rs.EOF’判断EOF标记属性(Endoffile)
Print rs!客户号 & vbTab & rs!公司名 & _ vbTab & rs!联系人 & vbTab & rs!联系内容 rs.MoveNext’将游标指针移到下一条记录 Loop
85
5.更新记录 使用Recordset对象来完成Update操作。 rs.Close’关闭之前建立的结果集 ’打开新的结果集,具有写操作权限 rs.Open“Customers”,cn,adOpenDynamic,adLockOptimistic,adCmdTable rs.MoveFirst’虽无必要,但可能是一个良好的习惯 rs!公司名=“Microsoft”’对相应字段赋予新值 rs.Update’在物理存储上生效 除了Update以外,写操作还包括AddNew(添加一条新记录)和Delete(删除一条新记录)。 需要注意的是,当使用Recordset对象完成写操作时,需要预先指定Recordset对象实例非只读。
86
6.收尾工作 如果不做的话,通常VisualBasic会自动释放和回收资源。
rs.Close Set rs=Nothing Set cmd=Nothing cn.Close Set cn=Nothing
87
在实际编程过程中使用ADO的一个典型的存取数据的步骤为: (1) 连接数据源 (2) 打开记录集对象 (3) 使用记录集 (4) 断开连接
88
下课了。。。 追求 休息一会儿。。。
Similar presentations