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

下载本文档

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

文档简介

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

2、一种完成完成的计算机应用系统。的计算机应用系统。n数据库应用系统包括如下三个部分:数据库应用系统包括如下三个部分: (1 1); (2 2) (3 3)。前言前言2022-1-27hh4n开发数据库应用系统做的几点:开发数据库应用系统做的几点:n了解基本结构基本结构; ;n选择一种选择一种n在在支持之下支持之下n使用一种使用一种Borland Borland DelphiDelphi)2022-1-27hh5n8.1.12022-1-27hh.1n单用户单用户n主从式主从式2022-1-27hh7整个数据库系统(包括应用程序、整个数据库系统(包括应用程序、DBMSDBMS、数

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

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

5、、B/SB/S模式(模式(Browser/Server Model)Browser/Server Model)2022-1-27hh128.28.2Delphi数据库应用系统开发基础 n.1数据库应用系统的结构数据库应用系统的结构n.2数据库引擎数据库引擎BDEBDE、ADOADO简介简介n8.2.3 8.2.3 数据库的连接与访问数据库的连接与访问2022-1-27hh132022-1-27hh14n一个通常由两部分组成:和。nDelphi采用开放式数据库体系结构,允许用户采用任何任何可获得的来创建数据库程序。2022-1-27hh158.2.2 8.2.2

6、数据库引擎数据库引擎BDEBDE、ADOADO简介简介n 数据库引擎数据库引擎(Borland Database Engine)是Borland公司推出的一种特有的用于,它可以让多个程序共享,为应用程序应用程序与的。的基本构思是把应用程序应用程序与,提供一个供用户使用,不再直接与具体的数据库打交道,而是,由,并把给应用程序。2022-1-27hh16中封装了各种,可以访问访问本地数据库本地数据库Paradox、dBase、FoxPro和Access,通过SQL LinksSQL Links驱动程序驱动程序又可以访问远程数据库访问远程数据库如。nBDEBDE支持的面很广,因为它,而ODBC本身就

7、可以支持很多数据库,所以凡是ODBC可以连接的数据库,BDE都可以连接。2022-1-27hh17SQL Link驱动程序驱动程序ODBC驱动程序驱动程序Report SmithReport SmithBDE 配置程序本地数据源dBase, ParadoxFoxPro和和Access符合ODBC规范的DBMS如Access Btrieve 等等远程数据库远程数据源等Delphi IDE 创建一个Delphi 数据库应用程序基于基于BDE的数据库应用程序结构的数据库应用程序结构 18n一个基于一个基于ODBCODBC的应用程序对数据库的操作的应用程序对数据库的操作不依赖任不依赖任何何DBMSDB

8、MS,不直接与,不直接与DBMSDBMS打交道,所有的数据库操打交道,所有的数据库操作由对应的作由对应的DBMSDBMS的的ODBCODBC驱动程序驱动程序完成。完成。nODBCODBC的最大优点是能的最大优点是能所有的数据所有的数据库。库。ODBC是微软和一些数据库厂商联合制定的,它通过提供了用来的手段,是访问数据库的通用方法。 19nODBCODBC基于基于SQLSQL,并把它作为访问数据库的标准。这,并把它作为访问数据库的标准。这个接口提供了个接口提供了最大限度的相互可操作性最大限度的相互可操作性,即一个应,即一个应用程序可以用程序可以通过一组通用的代码通过一组通用的代码访问不同的数据库

9、访问不同的数据库管理系统管理系统。nODBCODBC可以为不同的数据库提供可以为不同的数据库提供相应的驱动程序相应的驱动程序。ODBCODBC、应用程序与数据库关系如图:、应用程序与数据库关系如图:20ODBCODBC的组成与结构的组成与结构 ODBCODBC实际上是一个数据库访问函数库,使应用实际上是一个数据库访问函数库,使应用程序可以直接操纵数据库中的数据。程序可以直接操纵数据库中的数据。2022-1-27hh21应用程序要访问一个数据库,应用程序要访问一个数据库,首先必须用首先必须用ODBCODBC管理器注册一个管理器注册一个数据源数据源,管理器根据数据源提供,管理器根据数据源提供的数据

10、库位置、数据库类型及的数据库位置、数据库类型及ODBCODBC驱动程序等驱动程序等信息建立起信息建立起ODBCODBC与具体数据库的联系。这样,与具体数据库的联系。这样,只要应用程序将数据源名提供给只要应用程序将数据源名提供给ODBCODBC,ODBCODBC就就能建立起与相应数据库的连接。能建立起与相应数据库的连接。2022-1-27hh22重点掌握重点掌握(ActiveX Data Object)是微软推出的一套。它使应用程序能够通过一种叫做()的访问和操作访问和操作。2022-1-27hh23nADOADO是一个新型的数据访问接口,用来同数据访问是一个新型的数据访问接口,用来同数据访问层

11、层OLE DB ProviderOLE DB Provider一起协同工作,以提供通用数据一起协同工作,以提供通用数据访问(访问(Universal Data AccessUniversal Data Access)。)。nADOADO优点:易于使用、高速、低内存支出、磁盘空优点:易于使用、高速、低内存支出、磁盘空间占用较少等。间占用较少等。24nODBCODBC、OLE DBOLE DB和和ADOADO这这3 3个数据访问接口之间关个数据访问接口之间关系如图,可以看出系如图,可以看出ADOADO可以通过可以通过OLE DBOLE DB直接访问数直接访问数据源,也可以通过据源,也可以通过OLE

12、 DBOLE DB转转ODBCODBC的方式来访问数的方式来访问数据源。据源。2022-1-27hh25DELPHI 基于基于ADO的数据库应用程序结构的数据库应用程序结构 2022-1-27hh268.2.3 8.2.3 数据库的连接与访问数据库的连接与访问数据库访问机制数据库连接控件Borland Database Engine(BDE)Tdatabase/通过BDE管理器ActivX Data Object (ADO)TADOConnectionDbExpressTSQLConnection2022-1-27hh271)利用BDE访问SQL Server 数据库当前数据当前数据库别名库别

13、名别名参数别名参数2022-1-27hh282022-1-27hh29设置要访问的设置要访问的数据库名数据库名新建立数新建立数据库别名据库别名以以sa的身份访问的身份访问2022-1-27hh30参数保存选择新数据库别选择新数据库别名名 弹击鼠标右键弹击鼠标右键2022-1-27hh31设置连接数据库设置连接数据库TDatabaseTDatabase组件的参数组件的参数nAliasName AliasName 指定所连接的数据库名指定所连接的数据库名nDatabaseNameDatabaseName指定数据库别名指定数据库别名nConnectedConnected连接数据库。连接数据库。nCl

14、oseClose方法方法 nOnLoginOnLogin事件事件 开始开始程序程序Borland Delphi7 Delphi7 Borland Delphi7 Delphi7 进入下图所示进入下图所示DELPHIDELPHI的集中开发环境的集中开发环境: :2022-1-27hh33Database1切换到切换到BDE页面页面在组件板的在组件板的BDE页面选中该数据库控件页面选中该数据库控件在窗口的空白处单击将该控放入窗放入窗口口Form1在Obeject Inspector 的Propeters 页设置Database Name 为已建立的数据库别名如如(MSSQL1或或MSSQL2等)等

15、)或下或下拉拉AliaName右边右边的下的下拉按拉按钮选钮选择择MSSQL1或或MSSQL2等,等,然后然后Connected 右边右边空白空白处的处的灰色灰色下拉下拉按钮,按钮,选择选择True.2022-1-27hh342)2)使用使用ADOADO访问数据库访问数据库(希望同学们掌握这种方法希望同学们掌握这种方法)BDE / ADODelphi数据库应用程序本地数据库ODBC本地/远程数据库Paradox、Access等Access、Sybase、DB2、SQL Server等无需无需BDEBDE2022-1-27hh35双击双击重点掌握该种方法!重点掌握该种方法!2022-1-27hh

16、36双击双击2022-1-27hh37单单击击确确定定单击测试连接单击测试连接2022-1-27hh383 3)使用)使用TSQLConnectionTSQLConnection控件连接数据库控件连接数据库双击单击测试2022-1-27hh398.3 BDE8.3 BDE数据库应用程序开发技数据库应用程序开发技术术n8.3.1 BDE8.3.1 BDE数据库的体系结构数据库的体系结构n8.3.1 8.3.1 数据源组件数据源组件n8.3.2 8.3.2 数据控制组件简介数据控制组件简介2022-1-27hh401)BDE1)BDE数据库应用的体系结构数据库应用的体系结构用户界面元素BDE数据源

17、数据源数据库数据集数据集数据库会话表单数据模型基于基于BDEBDE的数据集组件的数据集组件数据控制组件数据控制组件数据源组件数据源组件2022-1-27hh412)ADO2)ADO数据库应用的体系结构(数据库应用的体系结构(重点重点)2022-1-27hh42数据控制与显示组件数据控制与显示组件2022-1-27hh43组件关系组件关系与功能图与功能图2022-1-27hh44ADOquery ADOcommandADOTableADODataSet2022-1-27hh45用于显示显示和修改修改通过与通过与为用户操作数据库数据集组件数据集组件和和2022-1-27hh468.3.2 8.3.

18、2 数据源组件数据源组件2022-1-27hh47DataSource1.DataSet ADOQuery1; 2022-1-27hh48可以暂时性地的。2. Enable属性属性2022-1-27hh493. AutoEdit属性属性它用于说明它用于说明是否是否与与TDataSourceTDataSource组件组件相连的相连的置于置于。2022-1-27hh50当与TDataSource相连的数据集中的的(如调用等方法)触发该事件。该事件一般用于应用中。2022-1-27hh51当前时,获取当前;2022-1-27hh52procedure TForm1.DataSource1DataCh

19、ange(Sender: TObject; Field: TField);2022-1-27hh532022-1-27hh542) OnUpdataData事件事件 当组件中当前当前记录记录将要时,该事件。例如在程序调用post方法之后,但在修改后的数据真正被修改后的数据真正被写回磁盘中的数据库文写回磁盘中的数据库文件件之前之前触发该事件。 2022-1-27hh55procedure TForm1.DataSource1UpdateData(Sender: TObject);beginend;2022-1-27hh562022-1-27hh57n3 3)OnStateChangeOnStat

20、eChange事件事件 n当与TDataSource组件相连的,便触发该事件。2022-1-27hh588.3.3 8.3.3 数据控制组件简介数据控制组件简介 组件用于,它们的主要功能是与,提供提供给用户的。 Data Controls页 2022-1-27hh59数据控制组件及其功能 组件名功 能TDBGrid用表格的形式显示数据集中的记录信息,表格中的各列可以在设计阶段使用字段编辑器创建也可以在运行过程中用程序设定TDBNavigator它提供了一组按钮用于数据集中的导航,编辑修改、插入、删除记录以及刷新数据的显示,TDBNavigator中包含的控制按钮在设计阶段可以进行选择TDBTe

21、xt用于显示数据集中当前记录的字段值TDBEdit用于显示和编辑数据集中当前记录指定的字段值TDBMemo用于显示数据集中的备注型字段,备注型字段中可以包含多行字符甚至可以是BLOB(大二进制对象)数据TDBImage用于显示数据集中的图像字段和BLOB数据TDBListBox当用户编辑修改表中当前记录的某个字段时,该组件是一个包含多个选择项的列表框,用户可以从中选择一个项做为字段的值TDBComboBOx该组件是一个组合框,当用户编辑修改表中当前记录的一个指定字段时,可以直接在该组件中输入字段值也可以单击该组件从下拉式列表框中选择一个字段值TDBCheck当表中字段的值与该检查框的Value

22、Checked属性值相匹配时,该检查框被选中TDBReadioGroup使用该组件可以为用户提供一组选择项,但用户只能从中选择一个可选项TDBLookupList 当用户要编辑修改数据集当前记录的指定字段时,使用该组件提供多个可选项,这多个可选项是从相关的其他表中读取的,且以列表框的形式提供给用户TDBLookupCombox该组件结合了TDBEdit组件和TDBComboBox组件的功能,用户可以直接向该组件中输入字段值,也可以从下拉式列表框中选择一个可选项,只是下拉式列表框中的可选项是从相关的其他的数据集中读取来的。2022-1-27hh60 所有数据控制组件都有一个,该属性。 数据控制组

23、件既能够,又可以。 2022-1-27hh61例例8-1-1在弹出的上下文菜单中选择在弹出的上下文菜单中选择【Columns editor】项,项,激活列编辑器激活列编辑器:2022-1-27hh62Column对象属性及说明 列属性说 明TColumnButtonStyle的对象,定义了显示在表格单元中的编辑按钮;其可能的选项是cbsAuto、cbsEllipsis和cbsNone字段单元的背景颜色当ButtonStyle特性为cbsAuto时,DropDownRows为显示的行数,该列有一个查找字段或者已经定义了的PickListExpanded如果为True,那么ObjectField被

24、扩展,显示对象字段的附加列数据集的字段名,列的数据从该字段中获取值设置列中每一个单元的单元字体列的输入方法编辑器,用于转换亚洲字符所使用的输入方法编辑器的名称静态的选择列表(TStrings对象),该列表作为列字段的可能选项;例如一个Boolean字段可以在选择列表中使用True和False值指定TPopupMenu对象确定列中的数据是否可编辑一个嵌套的TColumnTitle对象,定义了本列的固定列单元的显示属性。包含子属性alignment(对齐)、Caption(标题)、Color(颜色)。控制列的可视性控制列宽度2022-1-27hh63该属性设置为该属性设置为数据源组件名称数据源组件

25、名称,该数据源被指定为,该数据源被指定为TDBGridTDBGrid组件中显示数据的来源,组件中显示数据的来源,。 2022-1-27hh64nFields是一个集合属性,表示当前记录的所有字段。 n通过SelectedField属性可以得到当前选定的单元格内的值。2022-1-27hh65例例8-1-2procedure TForm1.DBGrid1CellClick(Column: TColumn);beginPanel2.Caption:=DBGrid1.SelectedField.FieldName;Edit1.text:=DBGrid1.SelectedField.AsString;

26、Edit2.text:=inttostr(ADOTable1.RecNo);Edit3.text:=DBGrid1.Fields1.Value;end;2022-1-27hh662022-1-27hh67 Option属性是一个集合,包含了描述TDBGrid组件的显示和操作属性。 Options属性的各个选项的用途选项说明dgEditing True:确保用户能够在表格中编辑、插入和删除数据集中的记录。是缺省值False:在表格中不能编辑、插入和删除数据集中的记录dgAlwaysShowEditorTrue: 当用户选中记录中的一个字段时,自动地使该字段处于编辑状态False:当一个字段被选中

27、,它不能自动地变成编辑状态。是缺省值。dgTitlesTrue:在表格的第一行中显示字段名或字段标题。是缺省此值。False:在表格中不显示字段名或字段对应的标题2022-1-27hh68dgIndicatorTrue:在表格的最左边用一个黑箭头标注当前记录指针所在的位置,在插入状态时,箭头变成星状,在编辑状时,箭头变成I头。是缺省值。False:在表格中不标识当前记录指针的位置dgColumnResizeTrue:通过拖拉表格的垂直分隔线可以改变表格中各列的宽度,在具体操作时要拖拉各列中显示字段标题区域中的垂直分隔线。是缺省值。False:表格中各列的宽度不能改变dgCloLines Tru

28、e:在表格中显示各列之间的垂直分隔线。是缺省值。False:在表格中不显示垂直分隔线dgRowLines True:在表格中显示各行之间的水平分隔线。是缺省值。False:在表格中不显示水平分隔线。DgTabsTrue:可以在记录的各字段之间移动输入焦点(也即选择提示棒),是缺省值。False:不能在记录的名字段之间移动输入焦点,在表格中按Tab键时,直接跳出表格dgRowSelect True: 选择提示棒覆盖整条记录中的全部字段 False:选择提示棒一次只覆盖记录中的一个字段。是缺省值。dgAlwaysShowSelectionTrue:在表格始终显示选择提示棒,即Selection 使

29、其组件获得焦点时,也是如此。是缺省值。 False:只在当表格获得焦点时,才显示选择提示棒。dgConfirmDelete True:当在表格中删除记录时,弹出确认信息。是缺省值。 False:在表格中删除记录时不弹出确认信息。2022-1-27hh692 2) TDBGridTDBGrid组件中的主要事件组件中的主要事件 事件说 明OnCellClick当用户在单元格中单击鼠标左键时,触发该事件OnColEnter当用户进入表格各列时,触发该事件OnColExit当用户离开表格各列时,触发该事件OnDblClick当用户在表格中双击鼠标左键时,触发该事件OnDragDrop当用户在表格中用鼠

30、标进行拖放操作时,触发该事件OnDragOver当用户在表格中用鼠标拖动表格时,触发该事件OnDrawDataCell用于定制绘制表格中各表格单元,当向表格中填充数据时触发该事件OnEndDrag当用户停止拖动表格时,触发该事件OnEnter当表格获得焦点时,触发该事件OnExit当表格失去焦点时,触发该事件OnKeyDown当用户在表格中按下任何键或组合键时,触发该事件OnKeyPress当用户在表格中按了任何一个数字键或字母键时,触发该事件OnKeyUp当用户在表格中释放任何被按下的键时,触发该事件2022-1-27hh70 用一个循环显示表格当前行所有列的值。3 3) TDBGridTD

31、BGrid组件应用实例组件应用实例(1) 新建应用程序(2)定制窗体2022-1-27hh712022-1-27hh722022-1-27hh73 var I : Integer;beginmemo1.text:=;for i:=0 to DBGrid1.Columns.Count-1 do memo1.text:=memo1.text+ +DBGrid1.FieldsI.AsString; end;2022-1-27hh74procedure TForm1.Button2Click(Sender: TObject);beginmemo3.text:=DBGrid1.SelectedField

32、.AsString;end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);beginADOQuery1.Close;end;2022-1-27hh752022-1-27hh76 用一个循环显示表格当前行所有列的值。(去掉第Button1click和Button3click 事件用DBGrid1CellClick事件代替:)procedure TForm1.DBGrid1CellClick(Column: TColumn);var I : Integer;beginmemo3.text:=DBGrid1

33、.SelectedField.AsString;memo2.text:=;for i:=0 to DBGrid1.Columns.Count-1 do memo2.text:=memo2.text+ +DBGrid1.FieldsI.AsString;end;Button2Click事件程序:2022-1-27hh77procedure TForm1.Button2Click(Sender: TObject);beginADOQuery1.Close;ADOQuery1.SQL.clear;if memo1.text thenbeginADOQuery1.SQL.Add(memo1.text)

34、;ADOQuery1.Open;end;end;TForm1.FormClose事件程序2022-1-27hh78procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);beginADOQuery1.Close;end;2022-1-27hh792022-1-27hh80编写一个程序演示对 ,使 Delphi 显示的。使用EDU_D在TDBGrid中显示表中的记录。【实现步骤】2022-1-27hh81程序设计界面2022-1-27hh822022-1-27hh83(3)编写代码procedure TForm1

35、.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);var i :integer;2022-1-27hh84nbeginn if gdSelected in State then Exit;n /定义表头的字体和背景颜色:定义表头的字体和背景颜色:n for i :=0 to (Sender as TDBGrid).Columns.Count-1 don beginn (Sender as TDBGrid).Col

36、umnsi.Title.Font.Name :=宋体宋体; n/字体字体n (Sender as TDBGrid).Columnsi.Title.Font.Size :=9; n/字体大小字体大小n (Sender as TDBGrid).Columnsi.Title.Font.Color :=$000000ff; /字体颜色字体颜色(红色红色)n (Sender as TDBGrid).Columnsi.Title.Color :=$0000ff00;n /背景色背景色(绿色绿色)n end; 2022-1-27hh85n/将奇偶行设置不同背景色n if ADOTable1.RecNo mo

37、d 2 = 0 thenn (Sender as TDBGrid).Canvas.Brush.Color := clInfoBk n elsen (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 beginn Pen.Color := $00ff0000; /定义画笔颜色定义画

38、笔颜色(蓝色蓝色)n MoveTo(Rect.Left, Rect.Bottom); /画笔定位画笔定位n LineTo(Rect.Right, Rect.Bottom); /画蓝色的横线画蓝色的横线n Pen.Color := $0000ff00; /定义画笔颜色定义画笔颜色(绿色绿色)n MoveTo(Rect.Right, Rect.Top); /画笔定位画笔定位n LineTo(Rect.Right, Rect.Bottom); /画绿色的竖线画绿色的竖线n end;nend;2022-1-27hh86 TForm1.Buttonen;beginif not adotable1.bof

39、 then begin if not adotable1.eof then begin Button5.Enabled:=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 elsebegin Button6.Enabled:=false; button2.enab

40、led:=false; Button5.Enabled:=true; button1.enabled:=true; end;end;2022-1-27hh87beginif not adotable1.eof then Adotable1.next; Buttonen; end;2022-1-27hh88beginif not adotable1.bof then Adotable1.First; Buttonen;end;beginif not adotable1.bof then Adotable1.Prior; Buttonen;end;2022-1-27hh89beginAdoTabl

41、e1.Append;end;procedure TForm1.Button8Click(Sender: TObject);begin Adotable1.post;end;beginif MessageDlg(你确定要删除吗你确定要删除吗?, mtConfirmation, mbYes, mbNo, 0)=mrYes then ADOTable1.Delete;end;2022-1-27hh90(4) 执行程序2022-1-27hh91在DBGrid中可以,当记录指针移动后,数据自动被保存到数据库。2022-1-27hh922、TDBNavigator组件2022-1-27hh93TDBNav

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

43、状态Refresh清除数据浏览组件的显示缓冲区,并用与其相连的数据集组件中的记录刷新显示缓冲区。2022-1-27hh94n1) TDBNavigator组件的属组件的属nDataSource属性nVisibleButtons属性 n ShowHint属性n Hints属性nConfirmDelete属性n2 ) TDBNavigator组件的事件组件的事件nBeforeAction事件nOnClick事件 2022-1-27hh95为的应用程序的添加。(1) (2) 2022-1-27hh96(3) 2022-1-27hh973.TDBText3.TDBText组件与组件与TDBEditTD

44、BEdit组件组件 是一个组件,它和TLabel组件类似,该组件。2022-1-27hh98A) DataSourceA) DataSource属性属性2022-1-27hh992022-1-27hh1002022-1-27hh101(3) 运行程序2022-1-27hh102【实现步骤】(1) 打开项目打开项目2022-1-27hh1032022-1-27hh1042022-1-27hh1054.TDBMemo4.TDBMemo组件及其应用组件及其应用主要用于显示和编辑数据集中的。 本,TDBMemo组件允许用户在其中多行文本信息,它是Delphi中用来显示和编辑数据集中的大二进制类型的文本

45、字段的。2022-1-27hh1061) ReadOnly属性2) MaxLength属性3) SCrollBar属性4)WordWrap属性5) Alignment属性6) AutoDisplay属性2022-1-27hh107使用TDBMemo组件建立一个应用程序,用于多行文本的编辑。使用对表中的记录进行操作。程序执行结果(1) 创建项目(2) 定制窗体2022-1-27hh1082022-1-27hh109(3) 运行程序2022-1-27hh110TDBImage组件与TDBMemo组件具有很多相似的属性,它是用来显示和编辑数据集中的BLOB类型的字段的。默认情况下,在TDBImage

46、组件中允许用户对位图图像进行编辑,如将图像复制到剪帖板上或从剪帖板上粘帖到TDBImage组件中,也可以在程序中调用CutToClipboard、CopyToClipboard和PasteFromClipboard方法来实现剪切、拷贝、粘帖功能,进行操作时要保证TDBImage的ReadOnly属性值为False。TDBImage组件也具有一个AutoDisplay属性,该属性的控制和作用与TDBMemo 组件的AutoDisplay属性是一样的。 2022-1-27hh111n1) Items属性 n2)Style属性 n3) DropDownCount属性n4) ItemHeight属性n

47、5)Sorted属性 2022-1-27hh112使用组件对表中的字段。(1) 创建项目(2) 定制窗体2022-1-27hh1132022-1-27hh114(3) 运行程序2022-1-27hh1158.TDBListBox8.TDBListBox组件组件TDBListBox组件是一个列表框,在列表框中显示,在运行过程中,用户单击其中的可选项可以为TDBListBox 组件,但用户。2022-1-27hh116使用组件对表中的字段。(1) 创建项目(2) 定制窗体2022-1-27hh1172022-1-27hh118(3) 运行程序2022-1-27hh1198.TDBCheckBox8

48、.TDBCheckBox组件组件 TDBCheckBox组件是一个可以进行是组件是一个可以进行是非选择的复选框。在非选择的复选框。在TDBCheckBox组件中组件中,不但能表示是或非,而且还能指定任意两,不但能表示是或非,而且还能指定任意两种数值。种数值。2022-1-27hh120使用TDBCheckBox组件对表中的字段。(1) 创建项目(2) 定制窗体2022-1-27hh1212022-1-27hh122该属性是字符串属性该属性是字符串属性, ,当字段的内容与该属性值当字段的内容与该属性值匹配时匹配时, ,该组件被选中该组件被选中. .该属性也是字符串属性该属性也是字符串属性, ,当

49、字段的内容与该属性当字段的内容与该属性值匹配时值匹配时, ,该组件被清除该组件被清除. .CheckedChecked属性是一个属性是一个BooleanBoolean类型变量,表示复选类型变量,表示复选框是否被选择。框是否被选择。CaptionCaption属性是一个字符串,指定了复选框旁边属性是一个字符串,指定了复选框旁边的文本。的文本。 2022-1-27hh123(3) 运行程序2022-1-27hh1249.TDBRadioGroup9.TDBRadioGroup组件组件TDBRadioGroupTDBRadioGroup组件组件提供一个由单选框组成的组。它也是和数据集中某个字段联系,

50、并通过单选框的选择表示该字段的值。每一个TDBRadioGroup组件某个时刻只有一个单选框能被选中。2022-1-27hh125nColumnsColumns属性属性该属性用来设置排列单选按钮的列数,默认值为1.nItemsItems属性属性n用来设置单选按钮旁显示的文字。它是一个TStrings类型的字符串数组,它的每一行对应一个选项的标签。nValuesValues属性属性n与Items属性一样,也是一个字符串列表,设置方法也是与Items属性一样。表示相应单选项的值。 2022-1-27hh126DBRadioGroup的 主要属性2022-1-27hh1272022-1-27hh12

51、82022-1-27hh1292022-1-27hh130n8.4.2 TADOCommand8.4.2 TADOCommand组件概述组件概述n8.4.4 TADOQuery8.4.4 TADOQuery组件概述组件概述2022-1-27hh1312022-1-27hh132ADO (ActiveX Data Objects)ADO (ActiveX Data Objects)对象对象使用ADOConnection 组件建立数据库的连接2022-1-27hh133(1)如果将所有的组件放入中,而在其他单元中,如果要使用所定义的ADOConnection,必须使用,否则无法实现关联引用。(2)

52、把数据规则定义在是一种好的编程习惯,不但,而且便于以后程序的扩充,很容易迁移到。2022-1-27hh1342022-1-27hh1352022-1-27hh1362022-1-27hh1372022-1-27hh1382022-1-27hh1392022-1-27hh1402022-1-27hh1412022-1-27hh142用于,该连接可被所。 TADOConnection 组件提供的功能:数据库的服务器的为关联的数据集数据库将到数据库中从数据库中2022-1-27hh143n此属性用于设置连接的数据库的自动处理事务的行为,它是TXactAttributes类型的集合,包括两个集合元素。

53、n1) 表示提交一个事务后自动开始一个新的事务;n2) 表示回退一个事务的同时将开始一个新的事务。 2022-1-27hh144命令超时属性,用于设置一个命令执行时所能等待的最大时间值。ADOConnection1.CommandTimeout:=120;标识和数据库的连接。 ConnectionString(连接字符串)用于指定数据库的连接信息。 2022-1-27hh145连接串的标准调用方式为:其中,连接串支持的常用参数见下表 。参数说明Provider数据提供者名称,例如:MSDASQL.1Password登录数据库的口令Persist Security Info支持安全登录User

54、ID登录数据库用户名Data Source数据源名称,数据源的设置需要额外的操作。2022-1-27hh146指定数据库连接是按照同步方式还是异步方式连接。指定建立连接的最大允许时间。 指定数据库游标是采用客户端模式还是服务器端模式。 表明数据源成功连接后,数据库的路径,这是由数据源自动赋值的。 指定不同事务之间的相互独立的级别。指定如果在没有打开数据集的情况下是否仍然保持数据库的连接。 2022-1-27hh147指定在每次建立连接时是否弹出登录对话框提示用户登录,如果设为False则必须在 ConnectionString中指定登录数据库的用户名和密码。指定连接对数据库的操作权限 。表明T

55、ADOConnection组件是否处于处理事务的状态中。DataSets属性包含当前使用这个连接组件的数据集的列表。DataSetCount属性表示该连接组件关联的数据集数目。2022-1-27hh148开始启动一个新的事务,必须保证数据连接处于激活状态。撤消正在建立的到数据库的连接。向数据库提交一个事务,提交成功后,在事务中对数据库所作的修改则写入数据库中,同时一个事务也结束。用来执行SQL命令。 获取数据库服务器上的存储过程名称。 获取数据库中的数据表名称。 2022-1-27hh149GetFieldNames方法方法获取当前连接的数据库中某个指定的数据表的所有字段名。Open方法方法打

56、开一个连接。RollbackTrans方法方法撤回一个没有全部执行的事务,事务撤回之后,事务中所作的任何修改都不会写入数据库。Close方法方法关闭一个连接。2022-1-27hh150事件说明AfterConnect发生在一个连接建立后AfterDisconnect发生在断开连接后BeforeConnect发生在连接建立前BeforeDisconnect发生在断开连接前OnBeginTransComplete发生在开始一个事务时OnCommitTransComplete发生在提交事务成功时OnConnectComplete发生在连接完成时OnDisconnect发生在连接断开时OnExecu

57、teComplete发生在一个命令执行后OnInfoMessage发生在收到数据库的消息OnLogin发生在用户登录数据库的时候OnRollbackTransComplete发生在一个事务撤回之后OnWillConnect发生在发出一个连接数据请求的时候OnWillExecute发生在数据库收到一个 SQL 命令并将要执行的之前2022-1-27hh151许多。通常,这些服务器在允许数据库访问之前要求。2022-1-27hh152和。例:procedure TForm1.Button2Click(Sender: TObject);beginadoconnection1.ConnectionSt

58、ring:=Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog=pubs;Data Source=qq-1;User ID=sa;password=123456;end;2022-1-27hh153nB. 将用户名用户名和作为。2022-1-27hh154procedure TForm1.ADOConnection1WillConnect(Connection: TADOConnection; var ConnectionString, UserID, Password: WideString; var Connect

59、Options: TConnectOption; var EventStatus: TEventStatus);begin UserID:=sa; password:=123456;end;2022-1-27hh155可以使用DataSets属性与DataSetCount属性一起遍历当前所有激活的数据集。 2022-1-27hh156编写一个程序,通过组件连接到数据库,并调用方法获取数据库中所有表的名称,显示在一个列表框中。用一个作为数据集,通过来选取要打开的数据表,并用一个显示表中的记录。(1) 新建应用程序2022-1-27hh157 (2)定制窗体2022-1-27hh158组件名属 性

60、属 性 值说 明ADOConnection1ConnectionString使用ConnectionString设置对话框设置该属性,连接到数据库edu_d。ADOTable1ConnectionADOConnection1指定使用的数据连接组件。DataSource1DataSetADOTable1指定使用的数据集为ADOTable1。DBGrid1DataSourceDataSource1为表格指定数据源。ListBox1Font.size12设定列表框中文字显示大小。Font.NameArial设定列表框中文字显示字体。各组件属性设置2022-1-27hh159procedure TFo

温馨提示

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

评论

0/150

提交评论