登陆注册
36209800000029

第29章 数据库应用程序设计(3)

DataSet属性是DataSource组件必须设置的属性,它指定DataSource组件连接的数据集组件。若DataSource组件在所有数据集组件之前放置,则该属性值只能从对象检查器属性值栏的编辑框输入;若放置DataSource组件之前已放置了数据集组件,则该属性值可从其下拉列表中选择。

2.AutoEdit属性

AutoEdit属性决定与DataSource组件连接的数据集组件是否处于自动编辑状态。该属性为布尔型属性,若其值为True,则与DataSource组件连接的数据控制组件对数据的修改会自动反映到数据表中;反之,则不能。其默认值为False。

3.Enable属性

Enable属性可以暂时地切断DataSource组件与相连的数据集组件的连接。该属性为布尔型属性,若其值为False,连接被切断。其默认值为True。

12.2.3数据控制组件

数据控制组件主要用于设计数据库应用程序用户界面,通过DataSource组件与DataSet组件相连接,对数据库中的数据进行浏览、编辑。

数据控制组件共有15个,位于组件模板的【DataControl】选项卡中,都是可视组件。

这些组件中的大部分同【Standard】选项卡中的一些组件功能、使用方法类似,只是增加了数据控制功能。

这些数据控制组件中,DBGrid组件和DBNavigator组件用DataSource属性同DataSource组件相链接,而其余13个组件都用DataSource属性和DataField属性同数据库相链接,DataSource属性用于指定组件链接的DataSource组件,DataField属性用于指定组件链接的数据表字段。在后面的介绍中,相同的属性就不再重复讲述。

1.DBGrid组件

DBGrid组件用网格的形式显示数据表中的数据,其每一行是一个数据记录,每一列是一个字段。

刚放置到窗体上的DBGrid组件如图12-8所示。

如用户数据库gongsi(公司),内建数据表zhiyuan(职员),该表有“姓名”、“性别”、“年龄”、“工龄”和“工资”5个字段。窗体中有Query1、DataSource1和DBGrid1共3个组件,Query1的DatabaseName属性为gongsi,SQL属性为:Selectfromzhiyuan,Active属性为True;DataSource1的DataSet属性为Query1;DBGrid1的DataSource属性为DataSource1,Options属性根据需要设置,设置完成后,DBGrid1显示如图12-9所示。

1)DBGrid组件的属性

(1)DataSource属性

DataSource属性指定与该DBGrid组件链接的DataSource组件。该属性可以在对象检查图12-9显示zhiyuan数据表内容的DBGrid组件器属性值栏的编辑框中直接输入;若在设置DBGrid组件的属性之前,窗体上已放置了需要的DataSource组件,该属性也可以从对象检查器属性值栏的下拉列表中选择。

(2)Columns属性

Columns属性决定DBGrid组件网格列项的特性,包括网格的列数、网格列的背景颜色及显示的文字的特性、网格列标题的特性及背景颜色等。

设置DBGrid组件的Columns属性,激活DBGrid组件,然后单击其Columns属性值栏右端的【…】按钮或直接双击DBGrid组件,弹出【EditingDBGrid1.Columns】(这里DBGrid组件的名称设为DBGrid1)对话框,如图12-10所示。

对话框有4个工具按钮,其中【AddNew(Ins)】、【DeleteSelected(Del)】和【AddAllFields】

常用,分别用来向显示网格中添加列项、删除列项、添加数据表中的所有字段作为列项。若设置该属性前,数据集组件、DataSource组件及DBGrid组件的其他属性已设置完毕,则单击【AddAllFields】按钮,这时数据集组件链接的数据表的所有字段显示在对话框的编辑区中,如图12-11所示;若需要对显示的列项进行调整,可再用【AddNew(Ins)】、【DeleteSelected(Del)】按钮加以增、删。

列项确定后,选择某一列项,对象检查器窗口显示该列项的属性设置窗口,可根据需要设置该列项的属性。其中重要的属性有:

①DropDownRows属性和PickList属性。PickList属性决定该列项是否有下拉列表及下拉列表的内容,DropDownRows属性决定该列项下拉列表的默认行数。单击PickList属性值栏右端的【…】按钮,弹出【StringListEditor】对话框,如图12-12所示,若不输入字符串,则该列项没有下拉列表;若输入若干行字符串,则可有若干行下拉列表,完成后单击【OK】

按钮即可。

②FieldName属性。它决定该列项中显示的数据表的字段。通常用于改变列项默认显示数据表字段。

③Color属性和Font属性决定该列项的背景颜色及列项中文字的字体属性。

④Title属性用于设置列项的标题特性。该属性为集合型属性,包含4个子属性:Alignment(对齐方式)、Color(标题背景颜色)、Caption(标题内容)和Font(标题字体)。

将各列项的属性设置完毕,单击对话框右上角的“关闭”按钮,关闭图12-12所示的【EditingDBGrid1.Columns】对话框。

(3)Fields属性

Fields属性包含DBGrid组件网格被选行中各个列项的内容。该属性为只读属性,用于通过网格读取数据表的内容,如:Edit1.Text:=DBGrid1.Fields[n].AsString;其中n为列项在行中的序号,起始为0。

(4)Options属性

Options属性决定DBGrid组件网格的外观和行为。该属性为集合型属性,包含13个子属性,均为布尔型属性,各子属性值为True时的含义如表12-1所示。

(5)SelectedField属性

SelectedField属性包含DBGrid组件网格被选列项的内容。该属性为只读属性,用于通过网格读取数据表的内容,如:Edit1.Text:=DBGrid1.SelectedField.AsString;2)DBGrid组件的事件

DBGrid组件有很多事件,其中常用的事件有以下几个。

(1)OnCellClick事件

单击DBGrid组件某一单元格时触发该事件。

(2)OnColEnter事件

当输入焦点转移到DBGrid组件的某一列项时触发该事件。

(3)OnColExit事件

当DBGrid组件的某一列项失去输入焦点时触发该事件。

(4)OnTitleClick事件

单击DBGrid组件某列项标题时触发该事件。

2.DBNavigator组件

DBNavigator组件用来移动数据表的当前记录指针,并可对数据表进行插入、删除、修改等操作。放在窗体上的DBNavigator组件如图12-13所示。

1)DBNavigator组件的按钮功能由此可见,通过DBNavigator组件的这些按钮,就可以很方便地对数据表中的数据进行操作。

2)DBNavigator组件的属性

(1)VisibleButtons属性

VisibleButtons属性决定DBNavigator组件各个功能按钮的可见性。该属性为集合属性,包含10个布尔型子属性:nbFirst、nbPrior、nbNext、nbLast、nbInsert、nbDelete、nbEdit、nbPost、nbCancel、nbRefresh,分别对应组件中的10个按钮,若某一子属性值为True,则对应的按钮可见;若某一子属性值为False,则对应的按钮不可见。其默认值均为True。根据实际需要,若不使用某个按钮,则可让该按钮不可见。

(2)Hints属性

Hints属性决定DBNavigator组件各个按钮的功能提示信息。DBNavigator组件的各个按钮,都有缺省的功能提示信息,单击Hints属性值栏右端的【…】按钮,弹出【StringListEditor】对话框,如图12-14所示,编辑区中的10行字符串,按顺序每一行有一个按钮的功能提示信息。用户可以不用缺省的提示信息,在对话框中另行设置,完成后单击【OK】

按钮即可。

(3)ShowHint属性

ShowHint属性决定DBNavigator组件是否显示按钮的功能提示信息。该属性为布尔型属性,若其属性值为True,则显示功能提示信息;否则,不显示。其默认值为False。

3.DBText组件

DBText组件以只读方式、用类似Lable组件的外观来显示数据表中当前记录的一个字段。

该组件除了要用DataSource属性指定组件链接的DataSource组件外,还要用DataField属性指定组件显示的字段。该属性值可以直接从对象检查器属性值栏编辑框中输入;若设置该属性值之前已设置了DataSource属性,也可以从其下拉列表中选择。该组件的其他属性类似于Lable组件。

4.DBEdit组件

DBEdit组件用来显示、编辑数据表中当前记录的一个字段,其功能和使用方法类似于Edit组件。

如前所述,使用该组件要用DataSource属性指定组件链接的DataSource组件,用DataField属性指定组件显示的字段。

如图12-9所示简例,窗体添加DBEdit1组件,设置其DataSource属性为DataSource1,DataField属性选择为“工资”字段,则DBEdit1显示当前记录“工资”字段的内容。

5.DBMemo组件

DBMemo组件用来显示、编辑数据表中当前记录一个大文本字段,其功能和使用方法类似于Memo组件。

6.DBImage组件

DBImage组件用来显示数据表中位图格式的字段,其功能和使用方法类似于Image组件。

7.DBListBox组件、DBComboBox组件和DBCheckBox组件这3个组件的使用同ListBox组件、ComboBox组件和CheckBox组件类似,只是同前面介绍的组件一样,要同数据表的字段相联系。

12.3数据库应用程序开发步骤

开发Delphi数据库应用程序,一般需要如下步骤:

(1)建数据库,包括选择数据库类型、创建用户数据库和数据表、向数据表中输入数据;(2)配置ODBC;

(3)设置BDE参数;

(4)设计应用程序界面;

(5)编写程序代码;

(6)运行、调试程序。

下面将具体介绍数据库应用程序设计的各个步骤。

12.3.1创建数据库

开发Delphi数据库应用程序,首先要创建数据库。

创建数据库包括选择数据库管理系统的类型、在选定的数据库管理系统中创建自己的数据库和数据表、向数据表中输入必要的数据。

数据库管理系统的选择,要考虑数据量的规模、应用环境、开发成本等诸多因素。

数据库和数据表的创建及数据的输入,各数据库管理系统都提供各自的方法。

数据库的创建,不属于本书的内容范围,读者根据选用的数据库类型参阅相关的书籍。

除了使用选定数据库管理系统提供的创建数据表、输入数据表数据的手段外,用户也可以使用Delphi提供的数据库管理工具DatabaseDesktop(数据库桌面)创建数据表、输入数据表数据。

1.使用DatabaseDesktop创建数据表

使用DatabaseDesktop创建数据表的步骤如下。

(1)执行【开始】→【程序】→【BorlandDelphi6】→【DatabaseDesktop】系统菜单命令,或在Delphi集成开发环境中执行【Tools】→【DatabaseDesktop】菜单命令,启动【DatabaseDesktop】,如图12-15所示。

(2)执行窗口中的【File】→【New】→【Table】菜单命令,打开【CreateTable】对话框,如图12-16所示。

(3)在【Tabletype】下拉列表中选择使用的数据库类型,这里选择Paradox7,然后单击【OK】按钮,关闭【CreateTable】对话框,打开【CreateParadox7Table(Untitled)】对话框,如图12-17所示。

(4)对话框的【Fieldroster】编辑区列出了创建的数据表字段的FieldName(字段名称)、Type(字段数据类型)、Size(字段尺寸)和Key(是否为关键字段)几个区域,供用户设定数据表的结构。

在第一个字段的FieldName栏,输入第一个字段的名称;右击第一个字段的Type栏,弹出快捷菜单,选择第一个字段的数据类型;根据需要,在Size栏确定第一个字段的尺寸,需要注意的是,有些数据类型具有默认的尺寸,不需要另行设定;最后确定第一个字段是否为关键字段,若确定为是,双击Key栏,显示“”,则为关键字段,再双击Key栏,“”消失,则不为关键字段。第一个字段设置完毕,按回车键,高亮条停在第二个字段的FieldName栏处,按如上方法设置第二个字段,…,直到所有字段设置完毕。建立了数据表的【CreateParadox7Table(Untitled)】对话框如图12-18所示。

图12-18创建了数据表的【CreateParadox7Table(Untitled)】对话框若建立的数据表的字段名为汉字,直接在高亮条状态下输入汉字会显示乱码,必须用鼠标单击高亮条,使之变成光标形状再输入汉字。后面向数据表输入的数据为汉字时也有这样的问题。

同类推荐
  • 如何建设网站

    如何建设网站

    本书以问答的方式介绍了建设网站的基本知识,内容包括:网站设计的八个步骤、建设网站需要掌握的工具软件、网页中插入图像、在网页中隐藏内容等。
  • 天下一家:网络联通世界(科学新导向丛书)

    天下一家:网络联通世界(科学新导向丛书)

    《天下一家:网络联通世界》一书从网络的基本知识出发,详细地介绍了网络科技的发展与用途,还包括校园网络对普及教育的重大作用。本书内容翔实、结构清晰、图文并茂,是一本实用性极强的网上冲浪参考书。
  • 计算机网络技术与应用

    计算机网络技术与应用

    本书共8章,系统地介绍了计算机网络的发展和基本原理体系结构、局域网、广域网、网络服务、网络安全、典型网络的结构特点等内容。除第8章外,其他各章都附有练习题。为了加强学习效果,本书围绕知识点的典型性,精选了6个实验。此外,在本书的第8章,我们综合各章知识设计了“办公局域网组建设计”和“中小型企业局域网组建设计”这两个常用的计算机网络技术应用实例,供学生学习和参考。本教材适合作为本科非计算机专业学生的计算机网络教材。
  • 科学伴你行-神奇的通信技术

    科学伴你行-神奇的通信技术

    在日常生活中,有时人们要借助于小旗子来进行通信联络,比如,开运动会时,发令员常常要用小旗子与计时员联系;当你乘坐火车进入车站时,都会看到车站工作人员拿着红色和绿色的小旗子在站台上进行指挥;在战争中,打出白色旗子表示投降,插上红色旗子表明胜利;航行在茫茫大海上的船只,双方船员会凭不同旗帜组成的标志,来了解对方的意思。以上种种用小旗子来“说话”的通信方式就叫做旗语。
热门推荐
  • 万灵炎皇

    万灵炎皇

    千年时间转眼即逝,血月魔皇的封印将要解除,万灵大陆笼罩在生死存亡的危机之中。少年夏飞自天地炎雷之中,横空出世,漫天火焰席卷大地,满天雷光照耀苍穹,身怀龙焱圣雷的他,与那掌控血月的魔皇,将会上演惊世对决。而那场争斗,将会决定无数人未来的命运。
  • 骨玉扳指

    骨玉扳指

    扳指,古已有之,以兽骨至犀角,玉,翡翠,碧玺等...八弦扳指关外宝藏无穷密文....
  • 重生之悍妇世子妃

    重生之悍妇世子妃

    端庄淑仪的名门闺秀变成彪悍世子妃,武艺超群王府公子变成文弱世子爷。陌生的环境,陌生的人事,让两人疲于应付。而明里的仇人,暗中的阴谋,更让两人防不胜防。以为已经得报大仇从此高枕无忧,却不料剥丝抽茧后,所有一切都不是他们想象的那样简单。(本文纯属虚构,请勿模仿。)
  • 落单恋人

    落单恋人

    他是一位洒脱不羁的富二代,人如其名又高又帅。她是一个活波可爱的小女生,和唐朝的文成公主同名不同姓。二人在火车站相遇,在大学毕业后的第一家公司相爱了。高爸爸望着高帅子承父业,壮大自己的公司,而高帅却有自己追求的梦想;高爸爸指定高帅和官二代丁盛花结婚,门当户对,而高帅却一直对远在他方的平凡又简单的文成念念不忘。面对家人的强势反对,他们依然守候彼此的约定,记得曾经一起浪漫的桥段。但他们又该如何携手走下去?--情节虚构,请勿模仿
  • 鸿蒙石

    鸿蒙石

    因绝对截脉之体为家族所弃的少年,偶得半份残图,勾动大陆风云……故事自此开始!
  • 陪李郎中夜宴

    陪李郎中夜宴

    本书为公版书,为不受著作权法限制的作家、艺术家及其它人士发布的作品,供广大读者阅读交流。
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 一妖天下

    一妖天下

    一狐在手,天下我有。打造11,血染群雄。YD合理,YY无敌。刁蛮泼辣的小狐狸,珠宝店的富家千金小萝莉,高贵优雅的美女老师,娇小可爱的警花,性感美女总裁,艳遇不断……一大堆美女MM接二连三的围绕在李阳身边打转。小狐狸:“我是你们的大姐,你,是老二,嗯,还有你,你是老三……李阳:“你们都给我闭嘴。“众女:“你才闭嘴。”李阳:“……“
  • 灵者之光

    灵者之光

    零是一个被克隆出来的远古灵族人。一个疯狂的科学家,意图在他身上发现早已灭绝的灵族人魔法的秘密,但阴差阳错之下不仅未能得逞,反倒让他逃出生天。在这个科技高度发达的世界里,还有魔法的一席之地么?
  • 冥神147号

    冥神147号

    一日之内,相依为命的哥哥死了,她也死了......猩红的眼看着她,这是一笔交易。147号公寓是冥神在人间的暂居地,现在作为冥神人间使者的她,负责来到这个地方寻求帮助的一切东西。包括人,鬼,或者妖魔。而那美男冥神余末,竟然将烂摊子甩给她,然后变成了一只黏人又无辜的正太......这世界上哪有什么好坏?鬼亦有情,魔亦有善。