数据库知识与其在Delphi中应简.ppt
现代密码学理论与实践之五,1,2023/10/14,数据库应用程序开发,ADO数据库访问技术,现代密码学理论与实践之五,2,2023/10/14,Delphi数据库访问技术,Delphi主要有4种数据库访问技术:BDE、dbExpress、IBX、ADO。BDE为早期的唯一数据库访问技术,由于新技术的出现,Borland早已停止开发它了。dbExpress为跨平台且独立于数据库的访问技术,但只能访问SQL数据库。IBX不是独立于服务器的数据库引擎,只能用于访问特定数据库服务器。ADO是在微软的数据访问OLE DB技术上实现的,若在windows上使用SQL2000或ACCESS作为后台数据库,则使用ADO最好。,现代密码学理论与实践之五,3,2023/10/14,Delphi的数据库连接方式及特点,集中式指所有数据集组件通过专门的数据库连接组件(ADOConnection)连接到同一个数据库的方式。分散式指所有数据集组件通过各自的属性(ConnectionString)分别连接到各自数据库的方式。两种方式的特点集中式:便于管理,数据同步不易出错,但在访问多个数据库时需要修改属性。分散式:可以分别连接不同的数据库,但数据库名改变,则每个数据集组件都要修改属性;另外,数据读取常发生不同步的现象。,现代密码学理论与实践之五,4,2023/10/14,ADO数据库访问技术组成,现代密码学理论与实践之五,5,2023/10/14,1.TADOConnection组件,ADOConnection组件用来建立与数据库之间连接的组件,各种dbGo的数据集及其操作组件,可以共用该连接来执行命令。读取数据并执行相应操作。常用属性ConnectionString:用来指明数据库的连接信息LgoinPrompt:用来控制登录数据库方法,True表示检测登录,False表示直接登录。,现代密码学理论与实践之五,6,2023/10/14,ADOConnection组件连接方法,双击ADOConnection组件,现代密码学理论与实践之五,7,2023/10/14,数据连接属性,现代密码学理论与实践之五,8,2023/10/14,ADOConnection1的属性设置,现代密码学理论与实践之五,9,2023/10/14,2.TADOTable组件,用于处理单一的关系表。常用属性:Connection:连接到数据集,即连到adoconnection组件上。Tablename:指定数据集中的某张表,作为数据源常用方法:Close:关闭数据集Open:打开数据集注意:动态更换数据源(即重新给tablename赋值)时,必须是在关闭状态下。Adotable1.close;Adotable1.tablename:=student;Adotable1.open;,现代密码学理论与实践之五,10,2023/10/14,2.TADOQuery组件,建立在SQL基础上,用于复杂的SQL查询或运行一组SQL命令。常用属性:Connection:连接到数据集,即连到adoconnection组件上。SQL:String型。设置执行查询所需的SQL语句。注意:在动态改变sql查询语句时,须按以下步骤执行:Adoquery1.close;Adoquery1.sql.clear;Adoquery1.sql.add(查询语句)Adoquery1.open;Active:boolean型。True表示执行SQL中的语句,否则不执行。Recordcount:integer型。返回查询结果的记录数。,现代密码学理论与实践之五,11,2023/10/14,3.TDataSource,TDataSource组件提供了连接数据集组件(如:TTable,TQuery,TStoredProc)与数控制组件(例如:TDBGrid)的纽带。属于DataAccess标签常用属性DataSet属性:指明该数据源组件连接的数据集合名。,现代密码学理论与实践之五,12,2023/10/14,4.TDBGrid,数据控制,显示数据。属于Data Controls标签属性Datasource数据源。,现代密码学理论与实践之五,13,2023/10/14,5建立一个数据库应用程序,设计界面使用组件:TADOConnection 连接数据库(TADOTable)TADOQuery 查询数据(数据集)TDataSource 将查询结果连接成数据源TDBGrid 显示数据配置属性编写代码例:成绩查询窗体,现代密码学理论与实践之五,14,2023/10/14,总结,ADO方式开发数据库应用软件TADOConnection,TADOTable,TADOQuery,TDataSource,TDBGrid等,现代密码学理论与实践之五,15,2023/10/14,数据集组件的属性和方法,属性Fieldbyname(const fieldname:string).value取指定字段的字段值如edit1.text:=adoquery1.fieldbyname(姓名).valuebof、eof只读属性。判断当前记录的位置是否在数据集的开始或末尾。方法Edit:当前记录设置为编辑状态。Append:增加一条空记录,并处于编辑状态。Cancel:取消对当前记录的操作,并处于浏览状态。,现代密码学理论与实践之五,16,2023/10/14,Post:提交当前记录(保存)。Delete:删除当前记录。First:首记录为当前记录。Prior:上一条记录为当前记录。Next:下一条记录为当前记录。Last:最后一条记录为当前记录。,现代密码学理论与实践之五,17,2023/10/14,数据控制组件,属性Datasource:指定数据源组件Datafield:指定要显示的数据源所对应的字段名称Readonly:是否为只读。Dbgrid、dbtext、dbedit、dbcombobox、dbnavigator,