第八章 DELPHI数据库应用系统开发基础(2014简)_第1页
第八章 DELPHI数据库应用系统开发基础(2014简)_第2页
第八章 DELPHI数据库应用系统开发基础(2014简)_第3页
第八章 DELPHI数据库应用系统开发基础(2014简)_第4页
第八章 DELPHI数据库应用系统开发基础(2014简)_第5页
已阅读5页,还剩205页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2021-7-12hh1 第八章第八章 DELPHIDELPHI数据库应用系统开发数据库应用系统开发 信息科学与工程学院信息科学与工程学院 韩华韩华 2021-7-12hh2 第八章第八章 数据库应用系统及其结构数据库应用系统及其结构 8.1 8.28.2数据库应用系统开发需知数据库应用系统开发需知 8.3 Delphi8.3 Delphi数据库应用系统开发基础数据库应用系统开发基础 8.4 8.4 数据库应用程序的组件数据库应用程序的组件 8.48.4 2021-7-12hh3 n以数据库为基础的信息系统通常称为数据库应 用系统,它一般具有信息采集、加工、抽取和 传播等功能,是实现业务应用的

2、数据库系统。 是一种是一种完成完成 的计算机应用系统。的计算机应用系统。 n数据库应用系统包括如下三个部分:数据库应用系统包括如下三个部分: (1 1); (2 2) (3 3)。 前言前言 2021-7-12hh4 n开发数据库应用系统做的几点:开发数据库应用系统做的几点: n了解基本结构基本结构; ; ; ; n选择一种选择一种 n在在支持之下支持之下 n使用一种使用一种Borland Borland DelphiDelphi) 2021-7-12hh5 n8.1.1 2021-7-12hh6 .1 n单用户单用户 n主从式主从式 2021-7-12hh7 整个数据库系统(

3、包括应用程序、整个数据库系统(包括应用程序、DBMSDBMS、数据)都装在、数据)都装在一台微一台微 机上机上,由一个,由一个用户独占用户独占,不同机器之间,不同机器之间不能共享数据不能共享数据。 1 1、集中式、集中式DBSDBS 2021-7-12hh8 主从集中式主从集中式DBS DBS 简单简单, 数据数据易易 于管理于管理 和维护和维护 能够能够支持支持 的的终端数终端数 目有限目有限, 由于所有由于所有 任务任务都由都由 主机完成,主机完成, 主机的性主机的性 能是能是DBS 的瓶颈的瓶颈 应用程序应用程序、DBMSDBMS、 应用较为应用较为数据库管理系统有数据库管理系统有Par

4、adoxParadox、 dBASEdBASE、AccessAccess、Visual FoxProVisual FoxPro等。等。 多用户多用户并发地并发地 存取存取数据库,数据库, 共享共享数据资源数据资源 2021-7-12hh9 2.2.客户客户/ /服务器结构服务器结构 1 1)二层)二层C/SC/S模式模式 安装数据库管理系统安装数据库管理系统 响应响应客户机客户机请请 求求 承担承担数据库数据管理,数据库数据管理, 根据请求根据请求完成完成数据操数据操 作作 安装应用程序安装应用程序 客户客户 程序运行、程序运行、 数据的处数据的处 理理和和输入输入 /输出操输出操 作作 20

5、21-7-12hh10 三层结构的三层结构的C/SC/S系统系统 三层结构的三层结构的C/SC/S系统系统 2021-7-12hh11 2 2、B/SB/S模式(模式(Browser/Server Model)Browser/Server Model) 2021-7-12hh12 8.28.2Delphi数据库应用系统开发基础 n.1数据库应用系统的结构数据库应用系统的结构 n.2数据库引擎数据库引擎BDEBDE、ADOADO简介简介 n8.2.3 8.2.3 数据库的连接与访问数据库的连接与访问 2021-7-12hh13 2021-7-12hh14 n一个通

6、常由两部分组成: 和。 nDelphi采用开放式数据库体系结构,允许用户 采用任何任何可获得的 来创建数据库程序。 2021-7-12hh15 8.2.2 8.2.2 数据库引擎数据库引擎BDEBDE、ADOADO简介简介 n 数据库引擎数据库引擎(Borland Database Engine)是 Borland公司推出的一种特有的用于 ,它可以让多个程序共享,为应用程序应用程序与 的。 的基本构思是把应用程序应用程序与 ,提供一个供用户使用, 不再直接与具体的数据库打交道,而是 ,由 ,并把给应用程序。 2021-7-12hh16 中封装了各种,可以访问访问 本地数据库本地数据库Parad

7、ox、dBase、FoxPro和Access, 通过SQL LinksSQL Links驱动程序驱动程序又可以访问远程数据库访问远程数据库 如。 nBDEBDE支持的面很广,因为它, 而ODBC本身就可以支持很多数据库,所以凡 是ODBC可以连接的数据库,BDE都可以连接。 2021-7-12hh17 SQL Link 驱动程序驱动程序 ODBC 驱动程序驱动程序 Report Smith Report Smith BDE 配置程序 本地数据源 dBase, Paradox FoxPro和和Access 符合ODBC规范的DBMS 如Access Btrieve 等等 远程数据库 远程数据源

8、等 Delphi IDE 创建一个 Delphi 数据库应用程序 基于基于BDE的数据库应用程序结构的数据库应用程序结构 18 n一个基于一个基于ODBCODBC的应用程序对数据库的操作的应用程序对数据库的操作不依赖任不依赖任 何何DBMSDBMS,不直接与,不直接与DBMSDBMS打交道,所有的数据库操打交道,所有的数据库操 作由对应的作由对应的DBMSDBMS的的ODBCODBC驱动程序驱动程序完成。完成。 nODBCODBC的最大优点是能的最大优点是能所有的数据所有的数据 库。库。 ODBC是微软和一些数据库厂商联合制定的,它通 过提供了用来 的手段,是访问数据库的通用 方法。 19 n

9、ODBCODBC基于基于SQLSQL,并把它作为访问数据库的标准。这,并把它作为访问数据库的标准。这 个接口提供了个接口提供了最大限度的相互可操作性最大限度的相互可操作性,即一个应,即一个应 用程序可以用程序可以通过一组通用的代码通过一组通用的代码访问不同的数据库访问不同的数据库 管理系统管理系统。 nODBCODBC可以为不同的数据库提供可以为不同的数据库提供相应的驱动程序相应的驱动程序。 ODBCODBC、应用程序与数据库关系如图:、应用程序与数据库关系如图: 20 ODBCODBC的组成与结构的组成与结构 ODBCODBC实际上是一个数据库访问函数库,使应用实际上是一个数据库访问函数库,

10、使应用 程序可以直接操纵数据库中的数据。程序可以直接操纵数据库中的数据。 2021-7-12hh21 应用程序要访问一个数据库,应用程序要访问一个数据库,首先必须用首先必须用ODBCODBC 管理器注册一个管理器注册一个数据源数据源,管理器根据数据源提供,管理器根据数据源提供 的数据库位置、数据库类型及的数据库位置、数据库类型及ODBCODBC驱动程序等驱动程序等 信息建立起信息建立起ODBCODBC与具体数据库的联系。这样,与具体数据库的联系。这样, 只要应用程序将数据源名提供给只要应用程序将数据源名提供给ODBCODBC,ODBCODBC就就 能建立起与相应数据库的连接。能建立起与相应数据

11、库的连接。 2021-7-12hh22 重点掌握重点掌握 (ActiveX Data Object)是微软推 出的一套。它使应用程序能够通过 一种叫做()的 访问和操作访问和操作。 2021-7-12hh23 nADOADO是一个新型的数据访问接口,用来同数据访问是一个新型的数据访问接口,用来同数据访问 层层OLE DB ProviderOLE DB Provider一起协同工作,以提供通用数据一起协同工作,以提供通用数据 访问(访问(Universal Data AccessUniversal Data Access)。)。 nADOADO优点:易于使用、高速、低内存支出、磁盘空优点:易于使

12、用、高速、低内存支出、磁盘空 间占用较少等。间占用较少等。 24 nODBCODBC、OLE DBOLE DB和和ADOADO这这3 3个数据访问接口之间关个数据访问接口之间关 系如图,可以看出系如图,可以看出ADOADO可以通过可以通过OLE DBOLE DB直接访问数直接访问数 据源,也可以通过据源,也可以通过OLE DBOLE DB转转ODBCODBC的方式来访问数的方式来访问数 据源。据源。 2021-7-12hh25 DELPHI 基于基于ADO的数据库应用程序结构的数据库应用程序结构 2021-7-12hh26 8.2.3 8.2.3 数据库的连接与访问数据库的连接与访问 数据库访

13、问机制数据库连接控件 Borland Database Engine(BDE)Tdatabase/通过BDE管理 器 ActivX Data Object (ADO)TADOConnection DbExpressTSQLConnection 2021-7-12hh27 1)利用BDE访问SQL Server 数据库 当前数据当前数据 库别名库别名 别名参数别名参数 2021-7-12hh28 2021-7-12hh29 设置要访问的设置要访问的 数据库名数据库名 新建立数新建立数 据库别名据库别名 以以sa的身份访问的身份访问 2021-7-12hh30 参数保存 选择新数据库别选择新数据库

14、别 名名 弹击鼠标右键弹击鼠标右键 2021-7-12hh31 设置连接数据库设置连接数据库TDatabaseTDatabase组件的参数组件的参数 nAliasName AliasName 指定所连接的数据库名指定所连接的数据库名 nDatabaseNameDatabaseName指定数据库别名指定数据库别名 nConnectedConnected连接数据库。连接数据库。 nCloseClose方法方法 nOnLoginOnLogin事件事件 开始开始程序程序Borland Delphi7 Delphi7 Borland Delphi7 Delphi7 进入下图所示进入下图所示DELPHID

15、ELPHI的集中开发环境的集中开发环境: : 2021-7-12hh33 Database1 切换到切换到BDE页面页面 在组件板的在组件板的BDE页面选中该数据库控件页面选中该数据库控件 在窗口的 空白处单 击将该控 放入窗放入窗 口口 Form1 在Obeject Inspector 的Propeters 页设置 Database Name 为已 建立的数据库别名如如 (MSSQL1或或 MSSQL2等)等) 或下或下 拉拉 AliaN ame 右边右边 的下的下 拉按拉按 钮选钮选 择择 MSS QL1 或或 MSS QL2 等,等, 然后然后 Conn ected 右边右边 空白空白

16、处的处的 灰色灰色 下拉下拉 按钮,按钮, 选择选择 True. 2021-7-12hh34 2)2)使用使用ADOADO访问数据库访问数据库 (希望同学们掌握这种方法希望同学们掌握这种方法) BDE / ADO Delphi数据库应用程序 本地数据库 ODBC 本地/远程数据库 Paradox、Access等 Access、Sybase、DB2、SQL Server等 无需无需BDEBDE 2021-7-12hh35 双击双击 重点掌握该种方法!重点掌握该种方法! 2021-7-12hh36 双击双击 2021-7-12hh37 单单 击击 确确 定定 单击测试连接单击测试连接 2021-7

17、-12hh38 3 3)使用)使用TSQLConnectionTSQLConnection控件连接数据库控件连接数据库 双击 单击测试 2021-7-12hh39 8.3 BDE8.3 BDE数据库应用程序开发技数据库应用程序开发技 术术 n8.3.1 BDE8.3.1 BDE数据库的体系结构数据库的体系结构 n8.3.1 8.3.1 数据源组件数据源组件 n8.3.2 8.3.2 数据控制组件简介数据控制组件简介 2021-7-12hh40 1)BDE1)BDE数据库应用的体系结构数据库应用的体系结构 用户界 面元素 BDE 数据源 数据源 数 据 库 数据集 数据集 数据库 会话 表单 数

18、据模型 基于基于BDEBDE的数据集组件的数据集组件 数据控制组件数据控制组件 数据源组件数据源组件 2021-7-12hh41 2)ADO2)ADO数据库应用的体系结构(数据库应用的体系结构(重点重点) 2021-7-12hh 42 数据控制与显示组件数据控制与显示组件 2021-7-12hh43 组件关系组件关系 与功能图与功能图 2021-7-12hh44 ADOquery ADOcommand ADOTable ADODataSet 2021-7-12hh45 用于显示显示和修改修改 通过与 通过 与 为用户操作数 据库 数据集组件数据集组件和和 2021-7-12hh46 8.3.2

19、 8.3.2 数据源组件数据源组件 2021-7-12hh47 DataSource1.DataSet ADOQuery1; 2021-7-12hh48 可以暂时性地 的。 2. Enable属性属性 2021-7-12hh49 3. AutoEdit属性属性 它用于说明它用于说明是否是否 与与TDataSourceTDataSource组件组件 相连的相连的置于置于 。 2021-7-12hh50 当与TDataSource相连的数据集中的 的(如调用 等方法) 触发该事件。该事件一般用于 应用中。 2021-7-12hh51 当前时,获取当前; 2021-7-12hh52 procedur

20、e TForm1.DataSource1DataChange(Sender: TObject; Field: TField); 2021-7-12hh53 2021-7-12hh54 2) OnUpdataData事件事件 当组件中当前当前 记录记录将要时, 该事件。例如在程序 调用post方法之后,但 在修改后的数据真正被修改后的数据真正被 写回磁盘中的数据库文写回磁盘中的数据库文 件件之前之前触发该事件。 2021-7-12hh55 procedure TForm1.DataSource1UpdateData(Sender: TObject); begin end; 2021-7-12hh

21、56 2021-7-12hh57 n3 3)OnStateChangeOnStateChange事件事件 n当与TDataSource组件相连的 ,便触发该事件。 2021-7-12hh58 8.3.3 8.3.3 数据控制组件简介数据控制组件简介 组件用于,它们 的主要功能是与,提供提供给用户 的。 Data Controls页 2021-7-12hh59 数据控制组件及其功能 组件名功 能 TDBGrid用表格的形式显示数据集中的记录信息,表格中的各列可以在设计阶段使用字段编 辑器创建也可以在运行过程中用程序设定 TDBNavigator它提供了一组按钮用于数据集中的导航,编辑修改、插入、

22、删除记录以及刷新数据 的显示,TDBNavigator中包含的控制按钮在设计阶段可以进行选择 TDBText用于显示数据集中当前记录的字段值 TDBEdit用于显示和编辑数据集中当前记录指定的字段值 TDBMemo用于显示数据集中的备注型字段,备注型字段中可以包含多行字符甚至可以是 BLOB(大二进制对象)数据 TDBImage用于显示数据集中的图像字段和BLOB数据 TDBListBox当用户编辑修改表中当前记录的某个字段时,该组件是一个包含多个选择项的列表 框,用户可以从中选择一个项做为字段的值 TDBComboBOx该组件是一个组合框,当用户编辑修改表中当前记录的一个指定字段时,可以直接

23、 在该组件中输入字段值也可以单击该组件从下拉式列表框中选择一个字段值 TDBCheck当表中字段的值与该检查框的ValueChecked属性值相匹配时,该检查框被选中 TDBReadioGroup使用该组件可以为用户提供一组选择项,但用户只能从中选择一个可选项 TDBLookupList 当用户要编辑修改数据集当前记录的指定字段时,使用该组件提供多个可选项,这 多个可选项是从相关的其他表中读取的,且以列表框的形式提供给用户 TDBLookupCombox该组件结合了TDBEdit组件和TDBComboBox组件的功能,用户可以直接向该组件中输 入字段值,也可以从下拉式列表框中选择一个可选项,只

24、是下拉式列表框中的可选 项是从相关的其他的数据集中读取来的。 2021-7-12hh60 所有数据控制组件都有一个 ,该属性。 数据控制组件既能够 ,又可以 。 2021-7-12hh61 例例8-1-1在弹出的上下文菜单中选择在弹出的上下文菜单中选择 【Columns editor】项,项,激活列编辑器激活列编辑器: 2021-7-12hh62 Column对象属性及说明 列属性说 明 TColumnButtonStyle的对象,定义了显示在表格单元中的编辑按钮;其可能的选 项是cbsAuto、cbsEllipsis和cbsNone 字段单元的背景颜色 当ButtonStyle特性为cbsA

25、uto时,DropDownRows为显示的行数,该列有一个查找 字段或者已经定义了的PickList Expanded如果为True,那么ObjectField被扩展,显示对象字段的附加列 数据集的字段名,列的数据从该字段中获取值 设置列中每一个单元的单元字体 列的输入方法编辑器,用于转换亚洲字符 所使用的输入方法编辑器的名称 静态的选择列表(TStrings对象),该列表作为列字段的可能选项;例如一个 Boolean字段可以在选择列表中使用True和False值 指定TPopupMenu对象 确定列中的数据是否可编辑 一个嵌套的TColumnTitle对象,定义了本列的固定列单元的显示属性。

26、包含子属 性alignment(对齐)、Caption(标题)、Color(颜色)。 控制列的可视性 控制列宽度 2021-7-12hh63 该属性设置为该属性设置为数据源组件名称数据源组件名称,该数据源被指定为,该数据源被指定为 TDBGridTDBGrid组件中显示数据的来源,组件中显示数据的来源, 。 2021-7-12hh64 nFields是一个集合属性,表示当前记录的 所有字段。 n通过SelectedField属性可以得到当前选 定的单元格内的值。 2021-7-12hh65 例例8-1-2 procedure TForm1.DBGrid1CellClick(Column: TC

27、olumn); begin Panel2.Caption:=DBGrid1.SelectedField.FieldName; Edit1.text:=DBGrid1.SelectedField.AsString; Edit2.text:=inttostr(ADOTable1.RecNo); Edit3.text:=DBGrid1.Fields1.Value; end; 2021-7-12hh66 2021-7-12hh67 Option属性是一个集合,包含了描述TDBGrid组件的显 示和操作属性。 Options属性的各个选项的用途 选项说明 dgEditing True:确保用户能够在表格

28、中编辑、插入和删除数据集中的记录。是 缺省值 False:在表格中不能编辑、插入和删除数据集中的记录 dgAlwaysShowEditorTrue: 当用户选中记录中的一个字段时,自动地使该字段处于编辑状 态 False:当一个字段被选中,它不能自动地变成编辑状态。是缺省值。 dgTitlesTrue:在表格的第一行中显示字段名或字段标题。是缺省此值。 False:在表格中不显示字段名或字段对应的标题 2021-7-12hh68 dgIndicatorTrue:在表格的最左边用一个黑箭头标注当前记录指针所在的位置,在插入 状态时,箭头变成星状,在编辑状时,箭头变成I头。是缺省值。 False:

29、在表格中不标识当前记录指针的位置 dgColumnResizeTrue:通过拖拉表格的垂直分隔线可以改变表格中各列的宽度,在具体操作 时要拖拉各列中显示字段标题区域中的垂直分隔线。是缺省值。 False:表格中各列的宽度不能改变 dgCloLines True:在表格中显示各列之间的垂直分隔线。是缺省值。 False:在表格中不显示垂直分隔线 dgRowLines True:在表格中显示各行之间的水平分隔线。是缺省值。 False:在表格中不显示水平分隔线。 DgTabsTrue:可以在记录的各字段之间移动输入焦点(也即选择提示棒),是缺省值。 False:不能在记录的名字段之间移动输入焦点,

30、在表格中按Tab键时,直接跳 出表格 dgRowSelect True: 选择提示棒覆盖整条记录中的全部字段 False:选择提示棒一次只覆盖记录中的一个字段。是缺省值。 dgAlwaysShowSelectionTrue:在表格始终显示选择提示棒,即Selection 使其组件获得焦点时,也是 如此。是缺省值。 False:只在当表格获得焦点时,才显示选择提示棒。 dgConfirmDelete True:当在表格中删除记录时,弹出确认信息。是缺省值。 False:在表格中删除记录时不弹出确认信息。 2021-7-12hh69 2 2) TDBGridTDBGrid组件中的主要事件组件中的主

31、要事件 事件说 明 OnCellClick当用户在单元格中单击鼠标左键时,触发该事件 OnColEnter当用户进入表格各列时,触发该事件 OnColExit当用户离开表格各列时,触发该事件 OnDblClick当用户在表格中双击鼠标左键时,触发该事件 OnDragDrop当用户在表格中用鼠标进行拖放操作时,触发该事件 OnDragOver当用户在表格中用鼠标拖动表格时,触发该事件 OnDrawDataCell用于定制绘制表格中各表格单元,当向表格中填充数据时触发该事件 OnEndDrag当用户停止拖动表格时,触发该事件 OnEnter当表格获得焦点时,触发该事件 OnExit当表格失去焦点时

32、,触发该事件 OnKeyDown当用户在表格中按下任何键或组合键时,触发该事件 OnKeyPress当用户在表格中按了任何一个数字键或字母键时,触发该事件 OnKeyUp当用户在表格中释放任何被按下的键时,触发该事件 2021-7-12hh70 用一个循环显示表格当前行所有列的值。 3 3) TDBGridTDBGrid组件应用实例组件应用实例 (1) 新建应用程序 (2)定制窗体 2021-7-12hh71 2021-7-12hh72 2021-7-12hh73 var I : Integer; begin memo1.text:=; for i:=0 to DBGrid1.Columns.

33、Count-1 do memo1.text:=memo1.text+ +DBGrid1.FieldsI.AsString; end; 2021-7-12hh74 procedure TForm1.Button2Click(Sender: TObject); begin memo3.text:=DBGrid1.SelectedField.AsString; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin ADOQuery1.Close; end; 2021-7-12hh75 202

34、1-7-12hh76 用一个循环显示表格当前行所有列的 值。(去掉第Button1click和Button3click 事 件用DBGrid1CellClick事件代替:) procedure TForm1.DBGrid1CellClick(Column: TColumn); var I : Integer; begin memo3.text:=DBGrid1.SelectedField.AsString; memo2.text:=; for i:=0 to DBGrid1.Columns.Count-1 do memo2.text:=memo2.text+ +DBGrid1.FieldsI.

35、AsString; end; Button2Click事件程序: 2021-7-12hh77 procedure TForm1.Button2Click(Sender: TObject); begin ADOQuery1.Close; ADOQuery1.SQL.clear; if memo1.text then begin ADOQuery1.SQL.Add(memo1.text); ADOQuery1.Open; end; end; TForm1.FormClose事件程序 2021-7-12hh78 procedure TForm1.FormClose(Sender: TObject;

36、var Action: TCloseAction); begin ADOQuery1.Close; end; 2021-7-12hh79 2021-7-12hh80 编写一个程序演示对 ,使 Delphi 显示的。使用EDU_D在 TDBGrid中显示表中的记录。 【实现步骤】 2021-7-12hh81 程序设计界面 2021-7-12hh82 2021-7-12hh83 (3)编写代码 procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TC

37、olumn; State: TGridDrawState); var i :integer; 2021-7-12hh84 nbegin n if gdSelected in State then Exit; n /定义表头的字体和背景颜色:定义表头的字体和背景颜色: n for i :=0 to (Sender as TDBGrid).Columns.Count-1 do n begin n (Sender as TDBGrid).Columnsi.Title.Font.Name :=宋体宋体; n/字体字体 n (Sender as TDBGrid).Columnsi.Title.Font.

38、Size :=9; n/字体大小字体大小 n (Sender as TDBGrid).Columnsi.Title.Font.Color :=$000000ff; /字体颜色字体颜色(红色红色) n (Sender as TDBGrid).Columnsi.Title.Color :=$0000ff00; n /背景色背景色(绿色绿色) n end; 2021-7-12hh85 n/将奇偶行设置不同背景色 n if ADOTable1.RecNo mod 2 = 0 then n (Sender as TDBGrid).Canvas.Brush.Color := clInfoBk n else

39、 n (Sender as TDBGrid).Canvas.Brush.Color := RGB(191, 255, 223); n /定义表格线的颜色: n DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State); n with (Sender as TDBGrid).Canvas do /画画 cell 的边框的边框 n begin n Pen.Color := $00ff0000; /定义画笔颜色定义画笔颜色(蓝色蓝色) n MoveTo(Rect.Left, Rect.Bottom); /画笔定位画笔定位 n LineTo(Re

40、ct.Right, Rect.Bottom); /画蓝色的横线画蓝色的横线 n Pen.Color := $0000ff00; /定义画笔颜色定义画笔颜色(绿色绿色) n MoveTo(Rect.Right, Rect.Top); /画笔定位画笔定位 n LineTo(Rect.Right, Rect.Bottom); /画绿色的竖线画绿色的竖线 n end; nend; 2021-7-12hh86 TForm1.Buttonen; begin if not adotable1.bof then begin if not adotable1.eof then begin Button5.Ena

41、bled:=true; button1.enabled:=true; Button6.Enabled:=true; button2.enabled:=true; end else begin Button6.Enabled:=true; button2.enabled:=true; Button5.Enabled:=false; button1.enabled:=false; end; end else begin Button6.Enabled:=false; button2.enabled:=false; Button5.Enabled:=true; button1.enabled:=tr

42、ue; end; end; 2021-7-12hh87 begin if not adotable1.eof then Adotable1.next; Buttonen; end; 2021-7-12hh88 begin if not adotable1.bof then Adotable1.First; Buttonen; end; begin if not adotable1.bof then Adotable1.Prior; Buttonen; end; 2021-7-12hh89 begin AdoTable1.Append; end; procedure TForm1.Button8

43、Click(Sender: TObject); begin Adotable1.post; end; begin if MessageDlg(你确定要删除吗你确定要删除吗?, mtConfirmation, mbYes, mbNo, 0)=mrYes then ADOTable1.Delete; end; 2021-7-12hh90 (4) 执行程序 2021-7-12hh91 在DBGrid中可以,当记录指 针移动后,数据自动被保存到数据库。 2021-7-12hh92 2、TDBNavigator组件 2021-7-12hh93 TDBNavigator组件按钮的功能 按钮名称按钮功能 F

44、irst将当前记录指针移到数据集中第一条记录处 Prior将记录指针移到当前记录的前一条记录处 Next将记录指针移到当前记录的后一条记录处 Last将当前记录指针移到数据集中最后一条记录处 Insert调用数据集组件的Insert方法,在当前记录的前面插入一条新记录,并将数据集组件置 为插入状态 Delete删除当前记录,如果TDBNavigator组件的ConfirmDelete属性设置为true时,会弹出删除 确认对话框 Edit将数据集组件置为编辑状态,以便用户修改当前的记录 Post提交对当前记录的修改 Cancel取消对当前记录的修改,并将数据集组件置为浏览状态 Refresh清除

45、数据浏览组件的显示缓冲区,并用与其相连的数据集组件中的记录刷新显示缓冲区。 2021-7-12hh94 n1) TDBNavigator组件的属组件的属 nDataSource属性 nVisibleButtons属性 n ShowHint属性 n Hints属性 nConfirmDelete属性 n2 ) TDBNavigator组件的事件组件的事件 nBeforeAction事件 nOnClick事件 2021-7-12hh95 为的应用程序的添加。 (1) (2) 2021-7-12hh96 (3) 2021-7-12hh97 3.TDBText3.TDBText组件与组件与TDBEdit

46、TDBEdit组件组件 是一个组件 ,它和TLabel组件类似,该组件 。 2021-7-12hh98 A) DataSourceA) DataSource属性属性 2021-7-12hh99 2021-7-12hh100 2021-7-12hh101 (3) 运行程序 2021-7-12hh102 【实现步骤】 (1) 打开项目打开项目 2021-7-12hh103 2021-7-12hh104 2021-7-12hh105 4.TDBMemo4.TDBMemo组件及其应用组件及其应用 主要用于显示和编辑数据集中的 。 本,TDBMemo组 件允许用户在其中多行文本信息,它是 Delphi中

47、用来显示和编辑数据集中的大二进制类型的 文本字段的。 2021-7-12hh106 1) ReadOnly属性 2) MaxLength属性 3) SCrollBar属性 4)WordWrap属性 5) Alignment属性 6) AutoDisplay属性 2021-7-12hh107 使用TDBMemo组件建立一个应用程序,用于多行文本 的编辑。使用对表中的记录进行操作。 程序执行结果 (1) 创建项目 (2) 定制窗体 2021-7-12hh108 2021-7-12hh109 (3) 运行程序 2021-7-12hh110 TDBImage组件与TDBMemo组件具有很多相似的属性

48、,它是用来显示和编辑数据集中的BLOB类型的字 段的。 默认情况下,在TDBImage组件中允许用户对位图图像 进行编辑,如将图像复制到剪帖板上或从剪帖板上粘帖到 TDBImage组件中,也可以在程序中调用CutToClipboard、 CopyToClipboard和PasteFromClipboard方法来实现剪切、 拷贝、粘帖功能,进行操作时要保证TDBImage的ReadOnly 属性值为False。 TDBImage组件也具有一个AutoDisplay属性,该属性的 控制和作用与TDBMemo 组件的AutoDisplay属性是一样的 。 2021-7-12hh111 n1) Ite

49、ms属性 n2)Style属性 n3) DropDownCount属性 n4) ItemHeight属性 n5)Sorted属性 2021-7-12hh112 使用组件对表中的字段。 (1) 创建项目 (2) 定制窗体 2021-7-12hh113 2021-7-12hh114 (3) 运行程序 2021-7-12hh115 8.TDBListBox8.TDBListBox组件组件 TDBListBox组件是一个列表框,在列表框中 显示,在运行过程中, 用户单击其中的可选项可以为TDBListBox 组件 ,但用户 。 2021-7-12hh116 使用组件对表中的字段。 (1) 创建项目 (

50、2) 定制窗体 2021-7-12hh117 2021-7-12hh118 (3) 运行程序 2021-7-12hh119 8.TDBCheckBox8.TDBCheckBox组件组件 TDBCheckBox组件是一个可以进行是组件是一个可以进行是 非选择的复选框。在非选择的复选框。在TDBCheckBox组件中组件中 ,不但能表示是或非,而且还能指定任意两,不但能表示是或非,而且还能指定任意两 种数值。种数值。 2021-7-12hh120 使用TDBCheckBox组件对表中的字段 。 (1) 创建项目 (2) 定制窗体 2021-7-12hh121 2021-7-12hh122 该属性是

51、字符串属性该属性是字符串属性, ,当字段的内容与该属性值当字段的内容与该属性值 匹配时匹配时, ,该组件被选中该组件被选中. . 该属性也是字符串属性该属性也是字符串属性, ,当字段的内容与该属性当字段的内容与该属性 值匹配时值匹配时, ,该组件被清除该组件被清除. . CheckedChecked属性是一个属性是一个BooleanBoolean类型变量,表示复选类型变量,表示复选 框是否被选择。框是否被选择。 CaptionCaption属性是一个字符串,指定了复选框旁边属性是一个字符串,指定了复选框旁边 的文本。的文本。 2021-7-12hh123 (3) 运行程序 2021-7-12h

52、h124 9.TDBRadioGroup9.TDBRadioGroup组件组件 TDBRadioGroupTDBRadioGroup组件组件提供一个由单选框组成的 组。它也是和数据集中某个字段联系,并通过单选 框的选择表示该字段的值。每一个TDBRadioGroup 组件某个时刻只有一个单选框能被选中。 2021-7-12hh125 nColumnsColumns属性属性 该属性用来设置排列单选按钮的列数,默认值为1. nItemsItems属性属性 n用来设置单选按钮旁显示的文字。它是一 个TStrings类型的字符串数组,它的每一行对 应一个选项的标签。 nValuesValues属性属性

53、 n与Items属性一样,也是一个字符串列表, 设置方法也是与Items属性一样。表示相应单 选项的值。 2021-7-12hh126 DBRadioGroup的 主要属性 2021-7-12hh127 2021-7-12hh128 2021-7-12hh129 2021-7-12hh130 n8.4.2 TADOCommand8.4.2 TADOCommand组件概述组件概述 n8.4.4 TADOQuery8.4.4 TADOQuery组件概述组件概述 2021-7-12hh131 2021-7-12hh132 ADO (ActiveX Data Objects)ADO (ActiveX

54、Data Objects)对象对象 使用ADOConnection 组件建立数据库的连接 2021-7-12hh133 (1)如果将所有的组件放入中,而在 其他单元中,如果要使用所定义的 ADOConnection,必须使用 ,否则无法实现关联引用。 (2)把数据规则定义在是一种好的编 程习惯,不但,而且便于以后 程序的扩充,很容易迁移到。 2021-7-12hh134 2021-7-12hh135 2021-7-12hh136 2021-7-12hh137 2021-7-12hh138 2021-7-12hh139 2021-7-12hh140 2021-7-12hh141 2021-7-1

55、2hh142 用于 ,该连接可被所。 TADOConnection 组件提供的功能: 数据库的 服务器的 为关联的数据集数据库 将到数据库中 从数据库中 2021-7-12hh143 n此属性用于设置连接的数据库的自动处理 事务的行为,它是TXactAttributes类型的集 合,包括两个集合元素。 n1) 表示提交一个事 务后自动开始一个新的事务; n2) 表示回退一个事务 的同时将开始一个新的事务。 2021-7-12hh144 命令超时属性,用于设置一个命令执行时所能 等待的最大时间值。 ADOConnection1.CommandTimeout:=120; 标识和数据库的连接。 Co

56、nnectionString(连接字符串)用于指定数 据库的连接信息。 2021-7-12hh145 连接串的标准调用方式为: 其中,连接串支持的常用参数见下表 。 参数说明 Provider数据提供者名称,例如:MSDASQL.1 Password登录数据库的口令 Persist Security Info支持安全登录 User ID登录数据库用户名 Data Source数据源名称,数据源的设置需要额外的操作。 。 2021-7-12hh146 指定数据库连接是按照同步方式还是异步方式连接。 指定建立连接的最大允许时间。 指定数据库游标是采用客户端模式还是服务器端模式。 表明数据源成功连接

57、后,数据库的路径,这是由数据源自 动赋值的。 指定不同事务之间的相互独立的级别。 指定如果在没有打开数据集的情况下是否仍然保持数据 库的连接。 2021-7-12hh147 指定在每次建立连接时是否弹出登录对话框提示用户 登录,如果设为False则必须在 ConnectionString中指定 登录数据库的用户名和密码。 指定连接对数据库的操作权限 。 表明TADOConnection组件是否处于处理事务的状态中。 DataSets属性包含当前使用这个连接组件的数据集的列 表。 DataSetCount属性表示该连接组件关联的数据集数目。 2021-7-12hh148 开始启动一个新的事务,必

58、须保证数据连接处于激活状态。 撤消正在建立的到数据库的连接。 向数据库提交一个事务,提交成功后,在事务中对数据 库所作的修改则写入数据库中,同时一个事务也结束。 用来执行SQL命令。 获取数据库服务器上的存储过程名称。 获取数据库中的数据表名称。 2021-7-12hh149 GetFieldNames方法方法 获取当前连接的数据库中某个指定的数据表的所有字段名。 Open方法方法 打开一个连接。 RollbackTrans方法方法 撤回一个没有全部执行的事务,事务撤回之后,事务中 所作的任何修改都不会写入数据库。 Close方法方法 关闭一个连接。 2021-7-12hh150 事件说明 A

59、fterConnect发生在一个连接建立后 AfterDisconnect发生在断开连接后 BeforeConnect发生在连接建立前 BeforeDisconnect发生在断开连接前 OnBeginTransComplete发生在开始一个事务时 OnCommitTransComplete发生在提交事务成功时 OnConnectComplete发生在连接完成时 OnDisconnect发生在连接断开时 OnExecuteComplete发生在一个命令执行后 OnInfoMessage发生在收到数据库的消息 OnLogin发生在用户登录数据库的时候 OnRollbackTransComplete

60、发生在一个事务撤回之后 OnWillConnect发生在发出一个连接数据请求的时候 OnWillExecute发生在数据库收到一个 SQL 命令并将要执行的之前 2021-7-12hh151 许多 。通常,这些服务器在 允许数据库访问之前要求 。 2021-7-12hh152 和。 例: procedure TForm1.Button2Click(Sender: TObject); begin adoconnection1.ConnectionString:=Provider=SQLO LEDB.1;Persist Security Info=False;Initial Catalog=pub

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论