第12章 数据库功能.docx
- 文档编号:19356622
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:18
- 大小:104.64KB
第12章 数据库功能.docx
《第12章 数据库功能.docx》由会员分享,可在线阅读,更多相关《第12章 数据库功能.docx(18页珍藏版)》请在冰豆网上搜索。
第12章数据库功能
第12章数据库功能
随着计算机技术的提高,数据库管理技术也从原来的文件系统阶段,发展到现在的数据库系统阶段。
提供数据库访问功能已成为所有开发平台的一种事实标准。
VB中提供了多种访问数据库的功能,可以访问dBase、FoxPro、Access数据库,还可以通过ODBC方式访问MSSQLServer、OracleSQLServer、SybaseSQLServer,以客户/服务器方式存取数据库中的数据。
VB6.0提供了Data控件、ADO控件、数据环境设计器等访问数据库方法,以及ADO数据对象访问技术。
12.1据库的基本概念
12.1.1系数据库
数据库结构:
层次数据库
网状数据库
关系数据库(表、记录、字段)
VB默认Access数据库(.MDB),可在VB中直接创建,VB还可处理各种外部数据库FoxPro、Dbase、Excel、Paradox等,以及其他非关系数据库,并将其转为关系数据库。
1.数据表(Table):
是一组相关联的数据按行和列进行排列的二维表格,简称为表。
如rsgl.mdb数据库中,包含:
职工工资表
部门
编号
姓名
基本工资
岗位津贴
职务补贴
奖金
水电
房租
实发工资
财务
05004
白雪
360.00
280.00
50.00
50
0
0
690.00
保卫
04031
常胜利
408.00
280.00
50.00
50
0
0
738.00
供销
02018
程国庆
820.00
280.00
50.00
50
0
0
1150.00
技术
03028
方芳
668.00
280.00
50.00
50
0
0
998.00
供销
02003
冯文清
668.00
280.00
50.00
50
0
0
998.00
生产
01011
冯玉霞
258.00
300.00
100.00
110
10
30
705.00
保卫
04058
韩进军
408.00
280.00
50.00
50
0
0
738.00
财务
05012
李明华
492.00
280.00
50.00
50
0
0
822.00
…
…
…
…
…
…
…
…
…
…
2.录与字段
记录(Record):
表中的每一行。
字段(Field):
表中的每一列。
3.关键字
候选关键字:
若表中某字段值能唯一确定一个记录,称该字段
为候选关键字。
如,“编号”,“姓名”
组合关键字:
“编号”+“姓名”
主关键字:
对表中的每个记录,主关键字必须具有唯一的值,
并且不能为空值。
4.索引
索引:
对表按照某种特定的顺序进行保存或排列。
作用:
快速查找。
12.1.2数据访问对象模型
ADO——ActiveX数据对象;
RDO——远程数据对象;
DAO——数据访问对象。
12.1.3结构化查询语言SQL
12.1.4数据库的分类
Jet数据库—由Jet引擎直接生成和操作,灵活速度快,Access
和VB使用相同的Jet数据库引擎;
ISAM数据库—索引顺序访问方法数据库,如:
Dbase、FoxPro、
Paradox等,VB可生成和操作这些数据库;
ODBC数据库—客户/服务器数据库,如:
MicrosoftSQLServer、
Oracle、Sybase等,VB可使用任何支持ODBC标
准的数据库。
12.2数据管理器的使用
VB提供一个非常实用的可视化数据管理器(VisualDataManager)
12.2.1建立一个数据库
1.启动数据管理器
(1)外接程序>可视化数据管理器
(2)直接执行VisData.exe程序
2.建立Access数据库
(1)文件>新建>MicrosoftAccess>Version7.0MDB
(2)输入数据库名:
RSGL[.MDB],保存文件夹:
LZY-VB
(3)单击保存按钮,出现“数据库窗口”和“SQL语句”两个子窗口。
单击“数据库窗口”中的“+”号,列出新建数据库的常用属性。
.MDB文件是Access数据库文件,它可包含多个二维关系的数据表,每个数据表不是以文件方式存于磁盘,而是包含在数据库文件中。
3.打开数据库
(1)文件>打开数据库>MicrosoftAccess>rsgl.mdb>打开
(2)在资源管理器中,找到要打开的文件,双击之
12.2.2添加数据表
1.建立数据表结构
职工工资结构表
字段名称
类型
字段长度
索引
部门
Text
4
编号
Text
8
主索引
姓名
Text
4
基本工资
Integer
2
岗位津贴
Integer
2
职务补贴
Integer
2
奖金
Integer
2
水电
Single
4
房租
Single
4
实发工资
Single
4
2.数据表的建立步骤:
(1)文件>打开数据库>MicrosoftAccess>rsgl.mdb
右单击数据库窗口,选择“新建表”,弹出“表结构”对话框;
(2)在表名称栏输入:
职工工资;
(3)单击添加字段按钮,弹出“添加字段”对话框,输入字段的名
称、类型、大小等,一个字段完成后按确定,所有字段完成
后按关闭,返回“表结构”对话框;
(4)单击添加索引按钮,弹出“添加索引”对话框,输入索引名等,
完成后按关闭,返回“表结构”对话框;
(5)在“表结构”对话框中,单击生成表>关闭。
3.改数据表结构
(1)打开修改表所在的数据库,右单击修改表的表名,选择“设计”
(2)在“表结构”对话框中,完成有关修改后,按关闭。
12.2.3数据的增、删、改
1.工具栏
(1)记录集类型按钮
表类型记录集:
直接对记录进行增、删、改
动态集类型记录集:
先内存进行增、删、改,速度快
快照类型记录集:
只读不写,适于查询
(2)数据显示按钮
使用Data控件、不使用Data控件、使用DBGrid控件
(3)事务方式按钮(打开数据表时有效,否则出错)
开始事务:
开始将数据写入内存数据表中
回滚当前事务:
取消由“开始事务”的写入操作
提交当前事务:
确认数据写入的操作,数据表更新,不能恢复
2.记录的输入、修改与删除
在数据库窗口中,双击或右单击要操作的数据表,选择打开
12.2.4查询
12.2.5数据窗体设计器
(1)新建一个标准EXE工程;
(2)在可视化数据管理器中>实用程序>数据窗体设计器;
(3)单击生成窗体,自动前置frm;
(4)运行前,移除Form1,设置frm<窗体名>。
12.2.6数据控件与数据感知控件
1.数据控件的常用属性、方法和事件
2.据绑定控件
3.示例分析
【例12-1】通过手工方式建立一个简单的工资管理系统,如下所示。
分析:
建立Data1,其Align属性为2-AlignBottom;
增加标签控件数组Label1(0)~Label1(9);
增加文本控件数组Text1(0)~Text1(9);
增加命令控件数组Command1(0)~Command1
(2)。
程序:
PrivateSubCommand1_Click(IndexAsInteger)
IfIndex=0ThenData1.Recordset.AddNew‘添加
IfIndex=1ThenData1.Recordset.Delete:
Data1.Recordset.MoveNext
IfIndex=2ThenUnloadMe‘关闭
EndSub
PrivateSubData1_Reposition()‘显示记录次序
OnErrorResumeNext‘发生错误时转下一语句
Data1.Caption="记录:
"&(Data1.Recordset.AbsolutePosition+1)
EndSub
PrivateSubText1_Validate(IndexAsInteger,CancelAsBoolean)’计算
DimA(3To8)AsSingle
SelectCaseIndex
Case3To8
ForI=3To8:
A(I)=Val(Text1(I).Text):
NextI
Text1(9).Text=A(3)+A(4)+A(5)+A(6)-A(7)-A(8)‘计算实发工资
EndSelect
EndSub
12.3ADO数据对象访问技术
VB6.0出的ADO(ActiveDataObject),是Microsoft未来的数据访问策略,将逐步代替远程数据对象(RDO)和数据访问对象(DAO),而成为主要的数据访问接口。
VB6.0供了Access/jet、ODBC、ORACEL、SQLServer等OLEDB数据源,ADO访问数据是通过OLEDB来实现的,它是连接应用程序和OLEDB数据源之间的桥梁。
12.3.1ADO编程模型简介
1.连接(Connection)对象
2.命令(Command)对象
3.记录集(Recordset)对象
12.3.2使用ADO命令
【例12-2】使用ADOData命令建立的工资管理数据窗体。
程序:
DimcnnAsADODB.Connection‘声明连接对象变量
DimrstAsADODB.Recordset‘声明记录对象变量
PrivateSubForm_Load()
S=”Provider=Microsoft.jet.OLEDB.3.51;PersistSecurityInfo=False;”&“DataSource=d:
\VB61x\rsgl.mdb”
Cnn.CursorLocaton=adUseClient
Cnn.opens
Rst.Open”职工工资”,cnn.adopenStartic.adLockOptimistic
ForEachaaIntext1
Setaa.DataSource=rst‘绑定所有文本框到记录源
next
Combo1.AddItem"全体"‘组合框初始化
Combo1.AddItem"保卫":
Combo1.AddItem"财务"
Combo1.AddItem"技术":
Combo1.AddItem"生产"
Combo1.Text=Combo1.List(0)
EndSub
PrivateSubCommand1_Click(IndexAsInteger)
SelectCaseIndex
Case0
rst.MoveFirst
Case1
rst.MovePrevious
Ifrst.BOF()Thenrst.MoveFirst
Case2
rst.MoveNext
Ifrst.BOF()Thenrst.MoveLast
Case3
rst.MoveLast
EndSelect
EndSub
PrivateSubCombo1_Click()
t=Combo1.Text
Ift="全体"Thenrst.Filter=""Elserst.Filter="部门='"&t&"'"
Rst.ResyncAdAffectAllChapters
EndSub
12.3.3使用ADO控件
1.添加ADOData控件
工程>部件>选MicrosoftADODataControl6.0(OLEDB)>确定
2.ADOData控件的属性
(1)单击ADOData控件,选择“ADODC属性”;
(2)单选“使用连接字符串”>生成>提供者>MicrosoftJec3.51OLEDBProvider>下一步>…>所选数据库路径和名字>测试连接→测试连接成功>确定→“属性页”
(3)设置CommandType、RecordSource
在“属性页”>记录源>命令类型:
“2-adCmTable”>表名称:
“职工工资”>确定
3.ADOData控件对数据的操作
ADOData控件对数据的操作主要由Recordset对象的属性与方法来实现,参见表12-16。
4.使用ADOData控件
【例12-3】使用ADOData控件建立的工资管理数据窗体。
分析:
(1)ADOData控件建立Adodc1,其
Align属性:
2-vbAlignBottom;
ConnectionString属性:
rsgl.mdb;
CommandType属性:
2-adCmTable;
RecordSource属性:
职工工资。
(2)增加标签控件数组Label1(0)~Label1(9);
增加文本控件数组Text1(0)~Text1(9);
增加命令控件数组Command1(0)~Command1
(2)。
(3)Text1()的DataSource属性:
Adodc1;
Text1()的DataField属性:
依次为部门、编号、姓名等。
程序:
PrivateSubCommand1_Click(IndexAsInteger)
SelectCaseIndex
Case0‘添加/确定
IfCommand1(0).Caption="添加(&A)"Then
Command1(0).Caption="确定(&O)"
Command1
(1).Caption="取消(&C)"
Adodc1.Recordset.AddNew
aa(False)‘按钮3、4隐藏
Else
Command1(0).Caption="添加(&A)"
Command1
(1).Caption="编辑(&E)"
Adodc1.Recordset.UpdateBatchadAffectAll
aa(True)‘按钮3、4显示
EndIf
Case1‘编辑/取消
IfCommand1
(1).Caption="编辑(&E)"Then
Command1(0).Caption="确定(&O)"
Command1
(1).Caption="取消(&C)"
aa(False)‘按钮3、4隐藏
Else
Command1(0).Caption="添加(&A)"
Command1
(1).Caption="编辑(&E)"
Adodc1.Recordset.CancelUpdate
Adodc1.Refresh
aa(True)‘按钮3、4显示
EndIf
Case2‘删除
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
Case3‘关闭
UnloadMe
EndSelect
EndSub
PrivateSubaa(IAsBoolean)‘按钮显示和文本加锁切换
DimoTxtAsTextBox
ForEachoTxtInText1
oTxt.Locked=I
Next
Command1
(2).Visible=I
Command1(3).Visible=I
EndSub
PrivateSubText1_Validate(IndexAsInteger,CancelAsBoolean)
DimA(3To8)AsSingle
SelectCaseIndex
Case3To8
ForI=3To8:
A(I)=Val(Text1(I).Text):
NextI
Text1(9).Text=A(3)+A(4)+A(5)+A(6)-A(7)-A(8)‘计算实发工资
EndSelect
EndSub
PrivateSubAdodc1_MoveComplete(ByValadReasonAsADODB.EventReasonEnum,ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpRecordsetAsADODB.Recordset)
Adodc1.Caption="记录:
"&(Adodc1.Recordset.AbsolutePosition)
EndSub‘显示记录信息
12.3.4使用数据环境设计器
除了使用ADOData控件外,还可用数据环境设计器(DataEnviron-ment)建立ADO数据访问的数据源。
方法如下:
1.向工程添加数据环境
工程>更多ActiveX设计器>DataEnvironment
2.创建连接对象
右单击Connection1>选“属性”>提供者>MicrosoftJet3.351经OLEDBProvider>…>选择所所需的数据库路径和名字>测试成功>确定
3.创建命令对象
右单击Connection1>选添加命令>选中Command1对象,单击工具栏中的属性>数据库对象选“表”>对象名称选“职工工资”
4.使用数据环境
【例12-4】在例12-2的数据查看中使用数据环境。
分析:
(1)建立用户界面(同例12-2);
(2)按上所述,添加数据环境DataEnvironment1,创建Connec-
tion1和Command1对象;
(3)设置Text1(0~8)的DataSource属性为DataEnvironment1,Dada-
Member属性为Command1,DataField属性为编号、姓名等。
程序:
PrivateSubCommand1_Click(IndexAsInteger)
SelectCaseIndex
Case0
DataEnvironment1.rsCommand1.MoveFirst
Case1
DataEnvironment1.rsCommand1.MovePrevious
IfDataEnvironment1.rsCommand1.BOF()ThenDataEnvironment1.rsCommand1.MoveFirst
Case2
DataEnvironment1.rsCommand1.MoveNext
IfDataEnvironment1.rsCommand1.BOF()ThenDataEnvironment1.rsCommand1.MoveLast
Case3
DataEnvironment1.rsCommand1.MoveLast
EndSelect
EndSub
PrivateSubForm_Load()
Combo1.AddItem"全体"
Combo1.AddItem"保卫"
Combo1.AddItem"财务"
Combo1.AddItem"技术"
Combo1.AddItem"生产"
Combo1.Text=Combo1.List(0)
EndSub
PrivateSubCombo1_Click()
t=Combo1.Text
Ift="全体"ThenDataEnvironment1.rsCommand1.Filter=""ElseDataEnvironment1.rsCommand1.Filter="部门='"&t&"'"
EndSub
12.3.5创建数据报表
数据环境的另一重要应用是为“数据报表设计器”提供数据源是,数据报表(DataReport)设计器是VB6.0新增的功能,与数据环境设计器配套使用,可以完成大多数类型报表的设计,是一种简单实用、高效快捷、功能齐全的报表设计工具。
【例12-5】在例12-4中用数据报表设计器,设计工资报表。
1.设计数据环境
在12-4的基础上,再作如下设计:
⑴、⑵
2.添加DataReport
3.设计报表中介面:
⑴、⑵、⑶、⑷、⑸
4.编写代码
5.运行报表
综合练习
1.功能模块图:
本章考核要求:
1.识记数据库、表等基本概念、ADO数据对象等基本概念;
2.领会掌握“可视化数据管理器”的使用方法;
3.简单应用:
掌握例1的编程方法;
4.综合应用:
掌握例3的编程方法。
课后作业:
习题9-7、习题9-8、习题9-9、习题9-10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第12章 数据库功能 12 数据库 功能