知识大全 简单数据库应用的创建及MASTAPP介绍(一)[2]
Posted 部件
篇首语:我们不会把常识僵化并使它变成信条。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 简单数据库应用的创建及MASTAPP介绍(一)[2]相关的知识,希望对你有一定的参考价值。
DELPHI基础教程:简单数据库应用的创建及MASTAPP介绍(一)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
利用TDBNavigator部件创建存取程序
我们可以改进一下Cust程序以便它一次只在对话框中显示一个客户的记录信息 并用一个TDBNavigator部件控制对记录存取──允许我们选择一个记录来显示或编辑以及增加和删除记录 完成的应用窗体
增强的Cust程序
创建应用程序窗体
我们可以非常迅速地创建起来 因为到目前为止我们对创建窗体的方法已经比较熟悉 我们首先把所有的部件都放到窗体中 然后再设置它们的属性
开始一个新工程 设置窗体Form 的Name 属性为 Customerform Caption 属性为 CustomerForm 然后从部件选择板上的Data Access页上选取一个Datasource部件和一个Table部件放在窗体的右上角 再从Data Controls页上选取DBNatvigator部件放在窗体的左上角
窗体中其余的部件如图 所示 它们是TDBEdit和TLabel部件 按图 所示创建并布置部件 分别命名DBEdit部件为EditCustno Editpany EditAddr EditAddr EditCity EditState EditZip EditCountry EditPhone EditFAX EditTaxRate EditContact
现在我们来连接TTable部件和 TDataSource 部件 然后连接所有的数据浏览部件和DataSource部件 设置TBNavigator部件和TDBEdit部件的属性 它们的DataSource属性都设置为DataSouce 我们最后要做的事是连接窗体中各个TDBEdit 部件和它们在数据库表中对应的字段名 通过设置TDBEdit 部件的 DataField 属性来完成 例如要连接命名为EditCustNo的TDBEdit部件和数据库表中的CustNo字段 具体步骤如下
①选中窗体中的EditCustNo部件
②在Object Inspector窗体中 单击DataField属性右边的箭头
③从下拉列表中选中CustNo字段名
对窗体中的其他TDBEdit部件执行以上操作连接到其对应的字段 然后保存文件 命名代码单元名为Cust pas 命名工程名为Cusprj DPR
使用TDBNavigator部件移动记录指针
上述程序运行之后 在数据浏览部件中会显示数据库表中的第一条记录 利用Tab 键可以在字段之间移动 但是不能编辑字段 因为我们为了防止意外修改 设置了Table 的AutoEdit属性值为False 如果想对数据库表中的记录进行编辑 插入和删除操作或者想显示数据库表中另一条记录 需要按 TDBNvigator 部件上这些功能所对应的功能按钮 TDBNavigator部件上的按钮和它们的功能如图 所示
TDBNavigator中的按钮
TDBNavigator部件的绝大多数功能都可以根据其按钮的图标能够很容易地识别出来 而且TDBNavigator部件本身能感知到很多事情 如当前指针是否在数据库表的开头或尾部 如果用户正在查看数据库表中的最后一个记录 Next和Last按钮将会变灰成为非活动状态 同样 如果用户当前正在浏览数据库表中的第一条记录 TDBNavigator 上的 First 和Previous按钮会变灰而成为非活动状态 有关各个按钮的作用的更详细说明请查看联机帮助
如果用户想修改当前的记录 单击TDBNavigator部件的Edit按钮 然后完成需要做的修改 在做完修改之后 单击Post按钮以便将作的修改写入实际的数据库表中(更新实际的数据库表中的记录在数据库术语中叫作 投寄 记录即PostT) 如果想取消所做的修改 单击Cancel按钮 Cancel按钮只取消自从上一次往数据库表中投寄记录以来对记录所做的修改 例如 如果用户曾修改了CustNo字段并单击了Post按钮投寄了修改 然后再修改Company字段并按Cancel 那么只有对Company所做的修改将会被取消 也就是说 一旦修改被写入了数据库表中 再按Cancle按钮是无法取消对记录的修改的 要想恢复到以前的状态 用户必须要重新编辑修改记录 值得注意的是 当用户修改了当前的记录 并移动到其他记录时 TDBNavigaator部件会自动地投寄用户对记录的修改 例如 如果我们修改了记录的Company字段 并没有按Post按钮以更新表中的记录 而是移动到下一条记录 这时用户对记录的修改也会自动地被写入数据库表中
定制TDBNavigator部件
TDBNavigator部件中的按钮对我们开发人员来说是很方便的 但对于程序的最终用户来说不一定那么一目了然 为了帮助最终用户或初级用户更方便有效地使用TDBNavigator部件 我们可以设置TDBNavigator部件的ShowHint属性为True 这样当鼠标光标停留在TDBNavigator部件上的某一个按钮上超过大约 秒钟 在屏幕上便会出现该按钮的提示信息 如果我们不想使用TDBNavigator部件本身嵌入的提示信息 我们还可以设置TDBNavigtor部件的Hints属性 为每个按钮指定特定的提示信息 以帮助用户使用TDBNavigator部件
TDBNavigator部件中有多个功能按钮 但并不是所有的按钮对每一个数据库应用程序都是需要的 特别是那些不允许修改表中的数据 或修改只是在很严格的控制下进行的数据库应用程序 我们可以通过设置TDBNavigator部件的 VisibleButtons 属性来确定要在TDBNavigator中显示哪些按钮步显示哪些按钮 例如 如果我们不允许用户修改表中的记录 我们就不需要Add Delete Post Cancel 或 Refresh 按钮 我们设置这些按钮的VisibleButtons属性为False 这样在TDBNavigator部件中将不会出现这些按钮
TDBNavigator部件的ConfirmDelete属性和Delete 按钮配合使用对用户删除数据库表中的记录是非常有用的 当ConfirmDelete属性设置为 True (缺省设置) 当用户单击Delete按钮试图删除当前记录时 Delphi会弹出一个确认框 要用户确认是否真的想删除当前记录 这样 在用户进行删除记录的操作时 会更安全一些 如果用户不希望在按下Delete按钮时出现确认框 只要把ConfirmDelete设置为False就可以了
还有一些属性可以用来定制TDBNavigator部件的外观和性能 有关这方面的详细信息请参看联机帮助
创建主要──明细数据库应用
我们前面在介绍的基于单个数据库表的数据库应用程序只能对数据库表进行简单的管理 大多数只用来浏览单个数据库表中的记录信息 如果我们想浏览多个相关的数据库表中的记录信息 就必须要创建主要──明细型数据库应用程序
在主要──明细型数据库应用程序中 一个数据库表作为主要表 其中存放著综合信息 其他的数据库表和主要数据库表相关联 它们当中存放著更详细的信息 例如 当数据库表Customer DB作为主表 它包含着客户的综合信息如编号 姓名 所在公司的名称等等 而数据库表Orders DB中包含着每个客户的订货单的详细信息 如订单号 发货日期 起运日期 发货目的地等信息 这样当在Customer DB表中查看某一位客户时 利用其中的字段CustNo与Orders DB表发生联系 自动地从Orders DB表中检索出这位客户曾经发来的所有订货单的详细信息 主要──明细型数据库体现了关系数据库的特点 即独立的数据库表之间基于它们共同的字段而发生联系 在这里Customer DB和Orders DB拥有一个共同的字段CustNo
一对多关系的主要──明细型数据库应用程序
主要和明细数据库表之间存在一对多的关系 意思是说对于主表中的一条记录 在明细表中有多条记录与之对应 例如 创建一个主要──明细型数据库应用程序 其包括两个表Customer DB和Orders DB 它们分别作为主表和明细表 创建好的应用如图 所示 窗体中各部件的属性设置
表 主要──明细型数据库应用中各部件的属性
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
部 件 属 性 属 性 值 注 释
──────────────────────────────────
Table Active True
(主表) DatabaseName DBDEMOS
TableName CUSTOMER DB
──────────────────────────────────
DataSource DataSet Table
AutoEdit False
──────────────────────────────────
Table Active True
(明细表) DatabaseName DBDEMOS
TableName ORDERS DB
IndexFieldNames CUSTNO 指定字段CUSTNO作为Table 中的索引字段
MasterField CUSTNO 指定与主表发生联系的字段
MasterSource DataSource 说明与主表相连接的数据源即DataSource
──────────────────────────────────
DataSource DataSet Table
AutoEdit False
──────────────────────────────────
DBGrid DataSource DataSource
(对应主表)
──────────────────────────────────
DBGrid DataSource DataSource
(对应明细表)
TableName ORDERS DB
──────────────────────────────────
DBNavigator DataSource DataSource
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
一对多关系是非常普遍的关系 即便是简单的名字/ 地址数据库都有一对多的关系 因为一个人可能不止一个地址 家庭地址 工作地址 还可能有别墅地址 在本例中 公司的一个客户常常有多个订货单 当我们单击DBNavigator 中的向前 向后按钮时 会移动DBGrid 中的记录指针 而在DBGrid 中会自动显示与DBGridl 中当前记录相关的多条记录 即显示一个客户的信息时 同时会显示该客户的所有订货单的详细信息
一对多──多关系的数据库应用
前面我们介绍了基于两个表的一对多关系的应用 下面我们介绍怎样创建一个从三个表中浏览数据记录的一对多关系的应用
例如 一个客户也许有多张订货单 而每一张订货单中有多个订货项目 这样我们在Customer DB表和Orders DB表之间建立一个主要──明细型关系 同时在orders DB 表和Items DB表之间建立一个主要──明细型关系
窗体中各部件的属性如表 所示
表 一对多──多关系的应用中各部件的属性
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
部 件 属 性 属 性 值 注 释
──────────────────────────────────
Active True
Table DatabaseName DBDEMOS
TableName CUSTOMER DB
──────────────────────────────────
DataSource DataSet Table
AutoEdit False
──────────────────────────────────
Active True
DatabaseName DBDEMOS
Table TableName ORDERS DB
IndexFieldNames CUSTNO
MasterField CUSTNO
MasterSource DataSource
──────────────────────────────────
cha138/Article/program/Delphi/201311/25174相关参考
知识大全 简单数据库应用的创建及MASTAPP介绍(二)[2]
DELPHI基础教程:简单数据库应用的创建及MASTAPP介绍(二)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我
知识大全 简单数据库应用的创建及MASTAPP介绍(二)[1]
DELPHI基础教程:简单数据库应用的创建及MASTAPP介绍(二)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我
知识大全 简单数据库应用的创建及MASTAPP介绍(三)[2]
DELPHI基础教程:简单数据库应用的创建及MASTAPP介绍(三)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我
知识大全 简单数据库应用的创建及MASTAPP介绍(三)[1]
DELPHI基础教程:简单数据库应用的创建及MASTAPP介绍(三)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我
知识大全 简单数据库应用的创建及MASTAPP介绍(三)[4]
DELPHI基础教程:简单数据库应用的创建及MASTAPP介绍(三)[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我
知识大全 简单数据库应用的创建及MASTAPP介绍(三)[3]
DELPHI基础教程:简单数据库应用的创建及MASTAPP介绍(三)[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我
知识大全 简单数据库应用的创建及MASTAPP介绍(二)[4]
DELPHI基础教程:简单数据库应用的创建及MASTAPP介绍(二)[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我
知识大全 简单数据库应用的创建及MASTAPP介绍(二)[3]
DELPHI基础教程:简单数据库应用的创建及MASTAPP介绍(二)[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我
概论 本文将介绍如何创建一个三层应用程序并且将介绍如何创建一个WebService服务 ADONET创建Wi