第12章 数据库功能Word文档格式.docx
《第12章 数据库功能Word文档格式.docx》由会员分享,可在线阅读,更多相关《第12章 数据库功能Word文档格式.docx(18页珍藏版)》请在冰点文库上搜索。
02018
程国庆
820.00
1150.00
技术
03028
方芳
668.00
998.00
02003
冯文清
生产
01011
冯玉霞
258.00
300.00
100.00
110
10
30
705.00
04058
韩进军
05012
李明华
492.00
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.打开数据库
打开数据库>
rsgl.mdb>
打开
(2)在资源管理器中,找到要打开的文件,双击之
12.2.2添加数据表
1.建立数据表结构
职工工资结构表
字段名称
类型
字段长度
索引
Text
4
编号
8
主索引
姓名
Integer
2
Single
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)
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
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.Text=Combo1.List(0)
Case0
rst.MoveFirst
Case1
rst.MovePrevious
Ifrst.BOF()Thenrst.MoveFirst
Case2
rst.MoveNext
Ifrst.BOF()Thenrst.MoveLast
Case3
rst.MoveLast
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);
(3)Text1()的DataSource属性:
Adodc1;
Text1()的DataField属性:
依次为部门、编号、姓名等。
Case0‘添加/确定
IfCommand1(0).Caption="
添加(&
A)"
Then
Command1(0).Caption="
确定(&
O)"
Command1
(1).Caption="
取消(&
C)"
Adodc1.Recordset.AddNew
aa(False)‘按钮3、4隐藏
Else
编辑(&
E)"
Adodc1.Recordset.UpdateBatchadAffectAll
aa(True)‘按钮3、4显示
EndIf
Case1‘编辑/取消
IfCommand1
(1).Caption="
Adodc1.Recordset.CancelUpdate
Adodc1.Refresh
Case2‘删除
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
Case3‘关闭
UnloadMe
PrivateSubaa(IAsBoolean)‘按钮显示和文本加锁切换
DimoTxtAsTextBox
ForEachoTxtInText1
oTxt.Locked=I
Next
Command1
(2).Visible=I
Command1(3).Visible=I
PrivateSubText1_Validate(IndexAsInteger,CancelAsBoolean)
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属性为编号、姓名等。
DataEnvironment1.rsCommand1.MoveFirst
DataEnvironment1.rsCommand1.MovePrevious
IfDataEnvironment1.rsCommand1.BOF()ThenDataEnvironment1.rsCommand1.MoveFirst
DataEnvironment1.rsCommand1.MoveNext
IfDataEnvironment1.rsCommand1.BOF()ThenDataEnvironment1.rsCommand1.MoveLast
DataEnvironment1.rsCommand1.MoveLast
ThenDataEnvironment1.rsCommand1.Filter="
ElseDataEnvironment1.rsCommand1.Filter="
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