ImageVerifierCode 换一换
格式:DOC , 页数:9 ,大小:601.50KB ,
资源ID:12021322      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/12021322.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(6数据库组件及应用[1].doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

6数据库组件及应用[1].doc

1、 第6章数据库组件及应用 本章导读 [内容简介] 本章首先介绍了delphi自带的数据库桌面系统以及Paradox数据库,介绍了它们的概况及使用;然后从分层的角度介绍了数据库组件的种类,并详细介绍了各类数据库组件的使用方法和应用技术。本章重点介绍了数据集组件所涉及的一些主要概念,在最后通过一个综合例题,介绍了如何利用数据库组件开发一个应用程序。 [学习目标] 1.掌握:delphi数据库桌面系统的基本使用;数据库组件如何连接到一个具体的数据库系统;本章介绍 的数据感知控件的主要属性设置和基本使用方法; 2.理解:数据库组件的分层与分工,以及他们之间的连接关系; 3.掌握:数

2、据集组件的基本功能,以及在数据库应用中所起的作用;数据集的定位和记录扫描;数据集动态字段、永久字段、计算字段和查找字段的概念及应用;如何访问数据集字段;Table组件和Query组件的基本使用。 6.1delphi数据库桌面系统 delphi数据库桌面系统(Database Desktop)是一个简单、实用的数据库操作与管理环境,它支持对多种数据库系统进行操作,其中就包括本书使用的paradox数据库系统。 paradox数据库是delphi软件自带的一个数据库系统。当你按标准模式安装了delphi软件后,就会在开始菜单中delphi部分找到“database Desktop”数据库

3、桌面系统,它的默认数据库就是paradox。 paradox数据库是个小型数据库,它具有关系数据库的基本特征。从数据库系统的角度看:一个paradox数据库包含了若干个二维表。但与大型数据库相比,paradox系统本身比较简单,并借用了操作系统的部分功能。例如,paradox的一个表,从操作系统中看就是一个后缀为.DB的文件。对于paradox,一个数据库对应操作系统的一个目录;而在数据库中所建立的若干关系表,就是该目录下的一组.DB的文件。数据库表与文件的这种对应关系在大型数据库中并不是这么简单。 在后面关开数据库组件的讲解中,读者将会看到,开发基于paradox数据库的应用系统

4、与开发大型数据库(如oracle)的应用系统,在开发方式上并没有什么很大差异,因为delphi数据库组件是通用的,不是针对某种数据库产品的。所以本书虽以paradox作为数据库的实例同,读者完全可以将所学到的知识扩展到其他数据库产品中去。 6.1.1数据库桌面系统界面 1.桌面系统的窗口界面 进入数据库桌面系统,你会看到图6-1所示的系统主界面。 图6-1 delphi数据库桌面系统界面 delphi桌面系统是一个典型的MDI(多数据窗口)程序,它主要支持3种类型的子窗口: ※ Table窗口 在该窗口中可以查看、修改数据库表的结构,可以编辑数据库表中的数据。 ※ Qu

5、ery窗口 在该窗口中可以对数据库表进行交互式的查询工作。 ※ SQL编辑器窗口 在该窗口中可以直接输入和执行SQL语句。 在图6-1中,工具栏上的3个快捷宾馆分别用于打开上面的3种子窗口。另外,在File(文件)菜单中,也有类似的命令,如表6-1所示。 表6-1 有关子窗口的菜单命令 File/New QBE Query 新建查询窗口(QBE-Query By Example) SQL File 新建SQL文件,并进入编辑窗口(执行SQL语句的主要方式) Table 新建关系表 File/Open QBE Query 打开已有的QBE文件 SQL File 打开

6、已有的SQL文件(编辑和执行保存的SQL语句) Table 打开已有的关系表 图6-2是在桌面系统的主窗口中打开了两个Table子窗口、新建了一个SQLFile子窗口的情况。例如,在这样的环境里,可以参照两个表的数据,在SQL编辑区中练习SQL语句。 2.文件与目录 delphi数据库桌面系统所使用的文件类型主要有以下四种: ◎ .db paradox表文件; ◎ .px paradox表主索引文件; ◎ .sql SQL文件(存放SQL语句) ◎ .bm 存放BLOB字段的数据(图形、备注等字段的大量数据主要存于该文件中,而不是存于表文件中)。 在打开或保存数据库有关文件

7、时,经常要用到“目录”这个概念。“目录”包括“工作目录”和和“私有目录”。工作目录代表了一个paradox数据库的位置,用于保存表文件和其他数据库文件。Desktop在打开和保存文件时使用的隐含目录就是工用目录。将来进行应用开发,也要根据工作目录找到想要访问的paradox数据库。 私有目录主要保存数据库操作过程中的一些临时文件。利用File菜单中的working Directory和private Directory命令可以分别设定工作目录和私有目录。 图6-3是一个目录设计方案,后面的例子将沿用这个目录设置。 (a)working directory对话框 (b)p

8、rivate Directory对话框 图6-3paradox数据库目录设置 6.1.2建表操作 本小节讨论如何利用桌面系统建立paradox数据库的表。 1.建立一个数据库表的基本过程 (1)首先进入桌面系统的主窗口,执行File菜单中的New命令,并指定建立新的Table(表),如图6-4(a)所示。 (2)在随后出现的对话框中选择数据库类型,对话框的下拉选单中列出了目前主流的数据库产品,有大型数据库系统(如oracle,Sybase,Db2等),也有微机数据库。我们选择delphi自带的数据库paradox7,如图6-4(b)所示。 (3)选择了数据库类后,将进入表结构定

9、义对话框,如图6-5所示。在对话框中,每行定义表的一列。在一行中依次输入列名、数据类型、长度(有的类型要求)和主关键字定义等。 (4)假如建立dep表,在Field Name域中输入表的第一列的列名dno 。 (5)在Type域指定dno列的数据类型。此时不用直接输入类型,而是按下空格键,在弹出的选单中选择列类型。如A(alpha)为字符串,I(Long Integer)为整型等。我们选择Alpha。 (6)Alpha类型要求指定字符串长度,所以在Size域中定义列宽,我们指定3 。注意,并不是所有的字段都需要设置列宽(如数值型就不需要)。 (7)在key域中定义该列是否为表的主关键字

10、按空格键后会出现一个“*”号,表示定义该列为主关键字。再按一下空格键,又可以去掉“*”号,即撤销主关键字的定义。当定义表的某列为主关键字时,该列的值必须一且不能为空。系统将为该列建立索引,并按该列的值组织记录(排序)。 (8)当定义完dno列后,按回车键,便开始在第二行定义表的下一列。表的各列定义以此类推。图6-6(a)是定义完列的情况,图6-6(b)是完成dep表定义的情况。 (9)表的各列定义完成后,按“Save as”按钮,将建好的表保存在我工作目录 中,表文件名字指定为dep.db,同时也就指定了表名为dep。 2.paradox表的常用字段类型 本小节通过两张表具体介绍

11、了paradox数据库的数据类型,以及例题用的几张表的定义情况(表6-,6-3)。 表6-2paradox提供的常用数据类型(用来定义关系表的列) 符号 类型 长度 注释 A Alpha 1-255 字符型(由字母、数字等字符组成) N Number 实型,范围:-10307-10308 S short 短整型,范围-32767-32768 I Long Integer 长整型,范围:-2147483648-2147483647 D Date 日期型(形式为年-月-日,如2004-5-21) M Memo 1-240 备注型(长

12、度表示在表中存放备注文本的前n个字符,其余存放在一个外部备注文件.mb中) L Logical 逻辑型(取值为T或F,即真或假) G Graphic(BLOB) 图型。目前支持的图形格式有.bmp,.pcx.,.tif,.gif和.eps等。当你将图贴到Graphic字段后 数据库就会把图形全部转换为.bmp格式。注:实际上是将一个图像连接到该字段,图像 还是存储在外部文件中(.mb)。 表6-3本章用以的5张关系表的定义 表名及存储文件 列名 类型 长度 码 说明 director系主任表 director.db表文件 Tno A 6 *

13、 工作证号 Tname A 6 姓名 Title A 6 职称 dep(系表) dep.db表文件 dno A 3 * 系号 dname A 10 系名 tel A 4 系电话 tno A 6 系主任 student(学生表) student.db表文件 sno A 6 * 学号 sname A 6 姓名 sex A 2 性别 birthday D 出生年月 dno A 3 所在系的系号 表名及存储文件 列名 类型 长度 码 说明 course

14、课程表) course.db表文件 cno A 3 * 课程号 cname A 10 课程名 credit S 学分 ctime S 上课时间 quotu S 名额 sc(选课表) sno A 6 学号 sc.db表文件 cno A 3 课号 注意:在paradox数据库中,表文件名就是表名。 3.表定义中的其设置 在表定义对话框右侧的“Table property”下拉选单中,有一些选项,通过它们可以对当前的表进行一些设置,如图6-7所示。 图6-7 表定义对话框 下面简要介绍几

15、个选项的含义。 (1)Validity Checks选项(合法性检查) 当选择了Validity Checks选项时,对话框右侧立即显示出对当前关系表的几项检查(如图6-7所示): Required Field 如果选取此项,就是定义了表的当前列不能为空。例如在图6-7中首先指定student表的sname列(sname列称之当前列)然后选中Required Field复选框。将来向student表插入一条学生记录时,姓名列不能为空(必须有值),否则系统拒绝接收数据。注意:在向一个表插入记录时,在不违反约束的情况下,有的列可以为空(插入记录时该列的值暂缺),但主关键字不能空。 Min

16、imum value和Maximum value 指定表的当前列取值上下限。例如在课程表中,可以设定学分列取值最小值为1,最大值为4。当向课程表插入课程记录时,如果学分 列的值超出指定范围,系统将报错,并拒绝接收数据。 Default Value 设定表的当前列的缺省值。例如可以设定系主任表“职称”列的缺省值是“教授”。也就是说,当插入一条系主任记录时,如果没有指定职称,数据库就默认是“教授”。当然,如果你指定了职称,则以你的输入为准。 picture 以格式描述串的形式设定表中当前列的输入格式。如格式串为(###)######-###时,当输入010627829220后,系

17、统将自动把输入的数据格式转换为(010)627829-220。 (2)Referential Integrity(引用完整性约束) 引用完整性约束是为了维护表之间的数据一致性。例如dep表和student表,在student表中有dno列(外来码,引用了dep表的主码),该列说明某学生所属的系。这样的两张表是有联系的,实际存在着相互制约的因素。例如删除系记录,如果在学生表中还有若干学生记录属于这个系,这个系的记录是不能删除的,否则会造成两张表的数据不一致性。如果定义了引用完整性约束,系统会负责维护两张表的一致性。在讨论引用完整性约束时,常把dep表称之为“父表”或“主表”,而将studen

18、t表称之为“子表”或“细表”。下面先看下引用完整性约束的定义过程。 图6-8 定义引用完整性约束对话框 在student表定义的对话框中,在Table properties下拉选单中选择Referential Integrity,然后按Define按钮。会出现图6-8对话框。 在图6-8的对话框中,左侧Fields框中显示了学生表的列名清单,选中dno列(外来码),然后点按右箭头按钮将其填入child field框中。 在图6-8的对话框中,右侧Table框中显示了数据库中当前存在的表。我们选择dep表(父表),点按左箭头按钮,父表按钮,父表的主关键字(dno)字段会填

19、入parent’s key框中。注意:在Table列表框中,系统只显示工作目录下的表。对于对话框中几个单选按钮的功能将结合下面的讲解来介绍。完成上述操作,会出现图6-9所示的画面。按OK按钮,系统会弹出对话框,请你为新建立的引用完整性约束起个名字。例如起名为“stu_dep”。有了这个名字,还可以在以后的操作中,根据需要修改或删除这个约束。 引用完整性约束建立后,系统负责以下数据一致性的维护工作: ◎如果在对话框中你选中prohibit单选按钮,系统将不允许你改变或删除子表中还在引用的父表主关键字值。例如,当子表中还有学生记录的系号是d01时,你就不能在父表中修改或删除dno列中的d0

20、1这个值。 如果我在对话框中你选中Cascade单选按钮,那么在父表中对主关键字值的任何改变也将反映到子表中。例如,当你在父表中修改了某个系记录的系号,由d01改为d02,那么在子表中凡是属于d01系的学生记录的系号全部自动改为d02。Cascade隐含方式。 ◎当向student表插入记录或修改记录时,dno列的值必须是dep表中某个系的dno值。也就是说,你不能主一个学生所在的系在dep表不不存在。 ◎当学生表中还有学生的系号是d01时,你不能在主表(dep)中删除系号是d01的系记录。 通过上述操作过程可以看出,引用完整性约束是在子表的结构定义(或修改)时建立,但此时主表

21、如dep)必须已经建好,且定义了主关键字,否则引用完整性约束也是没法建立的。 (3)secondary Indexes(建索引) 系统对于表的主关键字以及定义了引用完整性约束的外来码列会自动建立索引,例如,按照上面的操作,系统会在student表的sno和dno列上各建 一个索引。另外,还可以在一个表的某列上建立索引。索引是一个树状数据结构,在列上建立索引,可以加快涉及该列的连接、查询速度,还可以影响记录的隐含显示顺序。 例如,为了加快以学生姓名为检索条件(给一个学生名字,查该学生记录)的查询速度,就可以在学生表的sname列上建立索引。 如何建立索引呢?在Table P

22、roperties下拉选单中选择Secondary Indexes选项,然后单击“define”按钮,就会出现图6-10所示的对话框,左窗口列出当前表(如student)的列名清单。如果要在sname列上建立索引,就选择该列,然后按右箭头,sname列出现在右窗口中,这就是指定了要建索引的列。单击OK按钮,系统也会提示你输入一个索引名,例如输入“stu_sname_idx”,一个索引用建好了。注意:只有在表中数据量很大的情况下,建立索引才有实际效果。 6.1.3Table窗口 在桌面系统主窗口工具栏上按“Open Table”按钮,或在File菜单中执行Open/Table命令,就可以

23、打开一个子窗口,显示一张关系表的内容,如图6-11所示。由于桌面系统采用MDI界面,所以可同时打开几个表窗口。在有窗口中可以对二维表进行结构修改和数据维护等操作。 1.修改表结构 在表窗口中单击工具栏中的Restructure按钮,即可进入重构结构对话框,该对话框与建表对话框相同。修改表结构主要指插入和删除列,改变列在表中的次序,改变列的类型与长度,以及重新设置表的一些属性等。 在重构表结构对话框中,可移动光标到修改处,然后改变原定义的值。要删除一列,可单击字段前的序号选中它,然后按Ctrl+Del键即可。要插入一个字段,可先选中一列,然后近Ins键便可在该字段前插入一个新的字段。

24、 选中并上下拖动行可以改变列在表中的排列位置。注意:定义了主关键字的列必须排在其他列的前面。当表中已有数据时也可以修改表结构,但有时会破坏表中数据。如果改变了字段的类型缩短了字段的长度,删除了某个字段,或重新定义了合法性检查等,这些操作都可能使原先的数据被破坏或者使合法的数据变成非法。在发生这些情况时系统都会给出警告信息。 2.表中数据的维护与浏览 在Table窗口中按下工具栏上的“Edit Date”按钮(图6-11中右面第一个按钮),就可以进入编辑状态。只有在编辑状态中,才可以对表中的数据进行插入、修改和删除操作。将光标移到某行某列,就可以修改此处的值。Ins键可以当前行前插入

25、一行,而Ctrl+Del键可以删除当前行。主菜单Record中也有相关的命令。工具栏中的导航按钮(一组箭头按钮)可以实现对表中数据的浏览。 6.1.4SQL窗口 SQL窗口为用户提供了一个交互式的SQL语句执行环境。当打开或建立一新的.SQL文件时,桌面系统将打开SQL窗口。利用File菜单中的New/SQL File命令,可以建立一个新的.SQL文件,并为该文件打开一个SQL编辑窗口,如图6-12(a)所示。在该窗口中,你可以输入SQL语句,例如输入一个对学生表的查询语句,如图6-12(b)所示。 单击工具栏上的“Run SQL”按钮,就会执行窗口中的SQL语句。因为查询语句有输出

26、结果,桌面系统会打开一个结果显示窗口,如图6-13(a)所示。实际上在主窗口上包含了两个子窗口:一个是SQL编辑窗口,一个是保存查询结果的窗口。利用window菜单可以在这两个窗口中切换。如果查询结果不需要保存,可以在查看完后关闭结果窗口。 在执行SQL语句的过程中,如果语句有错,系统会给出错误提示信息。如果查询的表不存在,系统会弹出图6-13(b)所示的对话框。 SQL编辑窗口提供了一个直接执行SQL语句的环境。在该窗口中,SQL文件可以被打开、编辑、执行和保存。 6.2Delphi数据库组件 6.2.1数据库组件分类 Delphi是一个通用的面向多种应用的开发工具。由于提

27、供了丰富的数据库组件,因此它也适于开发基于数据库的应用程序,并成为数据库应用领域中的企业级开发工具。 Delphi的数据库组件资源非常丰富。根据作用的不同,数据库组件分成若干大类,并摆放在不同的组件页上。图6-14列出了本书用到的数据库组件的分层结构。 数据库的组件之所以要分层,是为了使每层组件功能专一、通用性强,也便于标准化。从图6-14中可以看出,各个组件分工明确。例如用户界面组件,它们是用户读写数据库的界面;又如数据库连接组件,它们专门负责与各种数据库的连接,为客户端提供了一个跨平台的数据库接口;数据集组件是数据库组件的核心,它们实现了对数据库的读写操作;至于数据源组件,它是连

28、接数据集组件和用户界面组件的桥梁,为用户界面组件提供了单一的数据来源。 这些组件相互连接,从用户界面到数据库,形成了一条通路,数据在它们之间传递。如果用户要查询数据库中的一条信息,该指令通过界面组件发出,以数据源到达数据集组件。数据集组件利用自身的读写功能,通过数据库连接组件从数据库中取得数据。再经数据源组件送到用户界面组件中显示。 比较奇妙的是:即使是在设计阶段,用户界面组件就已经能够动态显示来自数据库的数据,并能够完成某些控制动作。这就意味着,在设计阶段就能看到组件的“表现”是否正常,而不是到运行时才发现问题,这为组件的属性设置提供了很大方便。所以将用户界面组件叫做“数据感知控

29、件”,或“数据控件”。 应用程序运行后,除了数据感知控件会出现在用户界面上之外,其他组件是在后台工作,在用户界面上并不“露面”。 表6-4列出了本章用到的全部数据库组件,请读者结合图6-14理解它们所处的位置和与其他组件 的关联。 表6-4数据库组件 用户界面组件 (数据感知控件) 〖Data controls〗 DBNavigator 导航按钮,用于控制数据集数据浏览和数据维护 DBGrid 以表格形式(多行多列)显示和操纵数据集数据 DBText 显示来自数据集某字段的数据(类似于Label) DBEdit 单行编辑框,能显示或编辑数据集

30、某字段的数据 DBMemo 多行编辑窗口,能显示或编辑数据集某字段的数据 DBImage 显示来自数据集当前记录的某BLOB字段的图像 DBListBox 该列表框与数据集某字段相连,用户可以通过在列表中选择某项来改变数据集当前记录的字段值 DBComboBox 与数据集某字段相连,以组合框形式显示或输入数据 DBCheckBox 与数据集某字段相连,以复选框形式显示或输入数据 DBRadiGroup 与数据集某字段相连,以单选按钮形式显示或输入数据 DBLookupListBox 以列表框形式显示来自另一数据集的数据,填充当前数据集的字段值 DBLookupCo

31、mboBox 以组合框形式显示来自另一数据集的数据,填充当前数据集的字段值 数据源组件 Data Access Data Source 在数据集组件和数据感知控件之间提供了一个接口 数据集组件 〖BDE〗 Table 封装了一个数据库的表,其实现对表的读写操作 Query 封装了一个SQL语句及执行该语句的相关操作 数据库连接组件 〖BDE〗 Database 建立与数据库的连接,并对该连接设施控制 说明:黑括号中是各组件所在的组件页标签 从表6-4中可以看出,除个别组件外,Data Controls页上的数据库控件与标准组件页上的控件很相似。

32、例如:Standard页上有Edit,Data Controls页上有DBEdit。数据控件的名字都以DB开头,后面的名字与Standard页上的组件名相同。这两类组件确实有相似之处,但数据感知控件都是与数据相连,所以数据来去有预先定义的渠道。页Standard页上的组件没有数据源,所以它们的数据要由程序代码控制。下面先简要介绍各层组件 的基本功能。 6.2.2数据库连接组件―――Database Database是紧靠数据库的一个组件,它负责与各种数据库的连接,并为数据集组件提供了一个数据库的统一接口。从数据集组件的角度看,Database就相当于是一个数据库。Database组件是

33、一个非可视组件(不出现在用户界面上),它可以建在某个窗体上。但与其他组件不同的是,它不属于某个单元或窗体,而是属于整个应用程序。在一个项目中,如果连接一个数据库,只需要建立一个Database组件就可以了,各窗体上的数据集组件都可以与之相连。下面介绍Database组件的使用方法。 在窗体上(比如在主窗体上)建立一个Database组件,双击该组件,会出现图6-15(a)所示的对话框。 图6-15Database—数据库连拉组件 首先在Name框中输入一个名字,该名字就是Database组件的DatabaseName属性值。注意:这个名字对于数据集组件来说,就是要指定的数据库

34、的名字。在图6-15中,输入的名字为“mydb”。 在Driver Name复选框中,可以选择(也可以直接输入)一个要连接的数据库的数据库的驱动程序。如果要连接Delphi自带的paradox数据库,可以选择STANDARD驱动器名。如果要连接别的数据库,比如大型的Oracle数据库服务器,就要选择Oracle驱动程序。Delphi提供了绝大多数市面流行的关系数据的驱动程序。 驱动程序确定后,单击“Defaults”按钮,在“parameter Overrides”参数设置框中就会出现与驱动程序对应的一组参数及隐含值。参数框中的内容是随数据库的不同而不同的。由于我们选择的是Delp

35、hi自带的paradox数据库的驱动程序(STANDARD),所以参数比较简单。参数PATH就是指定一个paradox数据库所在的目录。根据上一章的设置,指定PATH=D:\mydb。对话框中的Options选项可以照图中设置。 此时可以单击OK按钮关闭对话框。如果留意下Database的属性设置,见图6-15(b),会看到两重要的属性都已设置好:即Database和DriverName,它们都是在上述对话框中指定的。另外,还有一个属性需要特别关注,那就是Connected。只有当这个属性为True,数据库的连接才真正建立,否则是处于断开状态。在程序调试过程中,特别是修改Database

36、组件属性及驱动器参数后,Connected属性会变为False,此刻要及时将它置为True。 6.2.3数据集组件 本章用到的两个主要的数据集组件都在BDE标签页上,如图6-16所示。它们都是非可视组件,因此可以放在窗体 上的任何位置,并属于窗体所有,但不会出现在运行界面上。 图6-16数据集组件页 Delphi应用程序对数据库的所有操作都是通过一组数据集组件实现的。数据集组件提供了访问数据库的功能。下面就来介绍数据集组件Table和Query。 1. Table组件 一个Table对象与数据库中的一个表相联系,它提供了对该表的各种读写功能。 建立一个Table对象的

37、步骤如下: 在一个窗体上建立一个Table对象,并为它指定一个恰当的标识名(Name属性值)。系统为Table对象起的隐含名字为Table1,Table2… 设置DatabaseName属性 该属性就是指定Table对象所要连接的数据库的名字,该属性值可以通过下拉选单来选取。凡出现在下拉选单中的数据库名都是目前可以连接的数据库,这些数据库名都是事先利用多种方式创建的,且不同的数据库有不同的创建过程。比如在建立Database对象时所设定的DatabaseName属性值(mydb)也会出现在这个下拉选单中,现在就选取它。 这样,数据集组件Table就与一个具体的数据库(Delph

38、i的paradox数据库)连上了。 设置TableName属性 因为Table对象是和一个数据库的一张表相联系,所以光指定数据库还是不够,还要指定数据库中的一张关系表。TableName属性就是指定这个表名的。该表名也可以从下拉选单中选取。在下拉选单,列出了指定的数据库中可以使用的表的清单。在mydb中,已建立了很多表,例如选择其中的Student.db。 设置Active属性 该属性决定是否打开数据集组件。如果Active属性为True,则打开Table,Table可以读写数据,前台的控件也可以通过它访问数据库;如果Active属性为False,数据集关闭,它停止读写数据。

39、 如果要使用Table读写数据,必须打开它,但某些工作(如对Table进行属性修改)也应该在关闭Table时进行,之后再打开它。 2.TQuery组件 一个Query组件封装了一条SQL语句(主要是DML),并提供了对该SQL语句的操作控制,其中还包括对查询语句返回结果的访问功能。因此,该组件实际上是为你在Delphi环境中提交一条SQL语句提供了途径。 建立Query对象的过程如下: ◎在一个窗体上建立一个Query对象; ◎设置DatabaseName属性; 设置Query对象要访问的数据库名,也就是指定SQL语句所要访问的数据库。 ◎在Query对象的SQL属性中编

40、写一条SQL语句(例如插入、修改、删除或查询);注意:与Table对象不同的是,Query对象没有指定表名的属性,因为所要访问的表包含在SQL读写语句中。 比较一下这两个数据集组件,它们各有特点。Table组件封装了对一张表的读写操作,在针对一张表操作的情况下,Table组件最方便,几乎不需要编写任何代码;而Query组件由于可以“容内”并执行一条SQL语句(DML语句),如果读者已掌握了SQL语句的用法,那么Query组件就显得更为灵活。在一个应用中,在每一个窗体上,都可以建立若干数据集组件对象。 在这里,有必要比较一下数据集和数据库两个概念的差异。数据库是表、索引等各种数据库对

41、象的集合。而数据集主要是引人表中的数据,数据库是表、索引等各种数据库对象的集合。而数据集主要的引入表中的数据,数据集是从Delphi角度看待表中数据的概念。例如一个Table对象,它封装了数据中的一张关系表,并提供了对于该表的读写功能及其他控制。表中的数据就是Table对象操作的数据,因此数据集也是有行、列的概念。 有关数据集组件更深入的内容,将在后面的章节中继续讲解。 在本节最后,再介绍一下数据源组件―――DataSource,它在“Data Access”标签页上。前面已经说过,数据感知控件是显示和操纵数据库中数据的控件。为了给数据感知控件提供一个抽象层和标准接口,Delphi专门

42、提供了一个数据源组件TDataSource。该组件也是一个非可视组件。 对于第一个数据集组件,若要让数据感知控件显示和操纵它的数据,就必须与一个数据源组件相连。同样,第一一个数据感知控件,为了能接收和操纵数据,也必须与一个数据源组件相连。所在,数据源组件的关键属性就是DataSet,它的值就是所要连接的数据集对象的名字,如Table。同样,所有数据感知控件的关键属性就是DataSource,它的值就是要连接的数据源对象名字,如DataSource1。 6.2.4数据感知控制(一) 该类控件在Data Controls标签页上(见图6-17),这些控件可以显示数据库中的数据、或提供

43、操作数据的接口。该类控件的大部分与前面介绍 的位于Stadndard标签页上的基本组件名称类似,界面也相像,如DBEdit,DBMemo,DBCheckBox等。但它们都 有指定的数据源,都 可以与数据库的数据相联系,数据库应用程序的界面采用这些控件最为方便。 图6-17数据感知控件页 在介绍每个数据控件的使用之前,先看下它们所具有一些基本特征。数据感知控件在设计阶段就具有数据感知的能力,并因此而得名。当你在创建应用时,只要数据集打开,便能够立即看到有效数据。这就是说,无需编译和运行应用程序,在设计时就能验证应用能否正确显示数据。 在程序运行时,数据控件不但能显示数据,用户还

44、可以通过它编辑数据库中的数据。所以说数据控件是数据 库应用程序中用户在界面上操作的主要对象。 在设计数据控件时,首先要定义好一个数据集和一个数据源。然后选取一个数据控件放置在窗体上,将数据控件的DataSource属性设定为要与之相连的数据源组件的标识名。另外,大多数数据控件还需要将DataField属性设定为所要显示的字段的名称)。 当设计让数据控件显示数据库中的数据时,数据库连接组件、数据集组件、数据源组件及数据控件要连接好,数据从数据库中到达数据感知控件要“一路畅通”。 当设计通过数据控件对数据库进行写操作时,数据要经过数据控件、数据源、数据集、数据库连接等几道“关口”

45、有一道不关口不通,写操作就不能实现。 数据控件的ReadOnly属性决定用户能否编辑在控件中显示的数据。缺省值为False。若要防止用户修改数据库中某字段的值,可将连接该字段的数据控件的ReadOnly属性设为True,相当于将数据控件置为只读状态。 数据源的Enabled属性决定了与之相连的控件是否能显示来自数据集中的字段值,当然也就决定了能否编辑数据集中的数据。如果Enabled属性为True(默认值),则控件能够显示字段值。 数据集的ReadOnly属性决定了用户能否对表进行写操作。若该属性为False(默认值),则用户可以利用数据集组件对表进行写操作,否则被设为只读

46、 下面结合例子分别介绍一下数据控件的使用方法。 1.数据导航控件――――DBNavigator 在数据控件中,只有这个控件不是用于访问数据,而是用于控制数据的访问。该控件由10个按钮组成,如图6-18所示。 图6-18 DBNavigator控件 下面从左到右依次说明这10个按钮的基本功能: First 将当前记录定位在数据集的第一条记录上; Prior 将当前记录设在前一个记录上; Next 将当前记录高在后一个记录上; Last 将当前记录定位在数据集的最后一条记录上; Insert 在当前记录之前插入一条新的记录,并使数据集进入Insert和E

47、dit状态; Delete 删除当前记录,并使下一个记录成为当前记录; Edit 使数据集进入编辑状态,并使当前记录可以被修改; Post 将当前记录的修改写到数据库中; Cancle 取消对当前记录所作的修改,并使它恢复到修改之前的状态,关闭数据集的修改或插入状态 Refresh 刷新数据集,以便显示数据中的最新数据(主要对Table) 导航控件实现了对数据集中数据的定位、编辑、插入、删除、提交等功能。导航控件之所以能够控制数据感知控件的读写(如显示那条记录),并不是它对控件直接进行干预,而是通过控制数据集――改变数据集的当前记录和数据集的状态,然后又反过来影响到数据

48、控件。 2.单字段数据感知控件 该类控件通常能够显示并编辑数据集中当前记录的某个字段,这些控件除了必须指定DataSource属性外(相连的数据源),还要指定DataField属性(相连的字段)。下面简单介绍下一常用控件的功能:。 DBText 将来自一个字段的数据以标签形式显示,因此文本的显示是动态的,且是只读的 DBEdit 该组件用一个编辑框与数据集的一个字段相连,可以对数据集当前记录该字段的值进行显示、输入或编辑 DBMemo 该组件是一个与Memo组件类似的数据感知控件,它能够显示多行文本,也允许用户输入多行文本。该控件可以用来显示、输入和编辑paradox表的M

49、emo类型(备注类型)字段的文本数据。 DBImage 该控件可在一图形框中显示包含在Paradox表中的Grphic字段中的位图化图形。它允许用户使用剪贴板有关方法在控件与剪贴板之间对图形进行剪切和粘贴操作,从而修改图形字段内容。 以上介绍了几个常用数据库组件的基本情况。下面先通过一个实例,介绍使用数据库组件来开发一个数据库应用 的基本过程,使读者对数据库组件功能及其使用有一个感性认识。 【例6-1】鱼类信息查询示例。 本例题是以Delphi自带的一个paradox数据库表的灵气 为基础,建立一个鱼类信息的浏览界面。首先,利用桌面系统,在mydb数据库中建立了关系表“fis

50、h”fish表的结构如下: Species no 鱼分类号 数值类型(N) 主关键字 Category 鱼的分类 字符类型(A) Commom_Name 鱼的通用名 字符类型(A) Length 鱼的长度(cm) 数值类型(N) Notes 鱼的文字说明 备注类型(M) Memo Graphic 鱼的图片 图形类型(G) Graphic 图6-19 数据库组件例题界面 表建成后,在工作目录下形成以下3个文件: ◎fish.db:表文件 ◎fish.px:索引文件; ◎fish.mb:大对象数据文件(存放图形和备注字段的表外数据

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服