




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Keep on walking 杨丽敬 Delphi程序设计工学结合特色精品课程 第_五_模块 本模块题目:Delphi数据库应用程序 主要教学内容和课时分配(请注明:* 重点 # 难点 ): 1.数据库的连接 2课时 2数据访问组件ADOTable * 1课时 3字段对象的使用 * 1课时 4数据集组件ADOQuery # 4课时 5ADODataset等其他ADO组件 4课时 教学目的要求: 利用数据界面组件连接数据库; 对字段对象的熟练使用; 利用ADOQuery ADOTable组件完成数据库各种操作; 教学方法和教学手段: 教学方法运用了多媒体课件讲授、开发进度讨论、代码编写示教、系统分析指导等。教学手段采用板书、多媒体、模型、示例等教学工具。 讨论、思考题、作业: 实训题目1:利用ADOTable的各种方法完成数据库的添加删除修改查询即完成主从表关联操作 2课时 实训题目2:利用ADOQuery的SQL属性的静、动态设置完成数据库的添加删除修改查询及进行主从表关联操作 2课时 实训题目3:数据字段和计算(参照)字段的用法 2课时 实训题目4:数据集组件ADODatase的使用 (选用) 备注: 第五章 Delphi数据库编程 数据库的几种连接技术比较 组件概述 *数据库组件AdoconnectionDatabase *数据集组件ADotableTable *SQL与adoqueryQuery组件 数据源组件Datasource 数据界面组件 数据控制组件 *字段对象 数据库的备份/还原/压缩 注:其中星号表示重点内容 ADO简介 ADO(ActiveX Data Object)即ActiveX数据对象,它提供的是数据库提供者,而 不是数据源这么简单。其优势在于通过一个数据提供者的概念,我们可以将现实 世界中的数据抽象成为一个数据逻辑提供给业务对象使用。对业务逻辑而言,仅 仅和数据逻辑打交道,不必理会该数据的物理形态。 ODBC(Open Database Connectivity)即开放是数据库连接。 ADO 是一套COM(Component Object Model组件对象模型)组件(DLLs),它允许你像访问电子邮件和文件系统一 样访问数据库。使用ADO编写的应用程序不需要BDE。为了用ADO访问 各种数据库,你需要有ADO/OLE DB( Object Linking and Embedding对象链接和嵌入)库。使用ADO所需要的可能在你的计算机中已存在:这些文件被 微软作为Windows98/2000的一部分分发。包含有MDAC-Microsoft Data Access Components(微软数据访问组 件)的安装文件。你应该确定使用的是MDAC的最新版本,它可以从微软的官方网站获得。MDAC是使 Universal Data Access(通用数据访问)起作用的关键技术。它们包括ActiveX Data Objects(ADO)、OLE DB和Open Database Connectivity(ODBC)。 ADO 对象(ADO Objects) ADO编程模型围绕着几个ADO对象而建立,这些对象为访问各种数据员提供多种方法。这些对象提供连接数据源、查 询和更新记录集、报告错误的功能。Delphi通过几个VCL组件通过访问这些对象的封装组件。让我们看一下与ADO工 作的对象是那些: Connection (连接)对象,通过连接字符串与数据源连接。在BDE/Delphi中,连接对象是数据库组件和会话( Session)组件的结合。 Command (命令)对象,使我们能操作数据源。它描绘一个命令(也视为查询或叙述),能处理对数据库数据的增 加、删除、查询或更新。 Recordset (记录集)对象,是查询(Query)命令的结果。你可以认为Recordset 是一个Delphi表(Table)组件 或查询(Query)组件。Recordset 返回的每一行都包含多个字段(Field)对象。 其他几个在ADO模型中存在的对象有:字段(Field)对象、参数(Parameter)对象和错误(Error)对象。 访问数据库三种方式比较 BDE特点:速度快,应用范围有限,不适应版本的更新。 ODBC特点:可随操作系统提供,作为标准接口能适应多种数据库,但速度慢。 内嵌方式(native):只要一个database组件,提供专用驱动,可以访问多种数据 库。 访问ODBC数据库有两种方式:接口技术创建数据集对象,用DSN连接数据表;创建 ADO对象,包括数据库连接对象和数据集对象,其余步骤和技术接口一样。 ADO对象 数据库连接对象(ADoDb.connection) 相当于delphi的Tdatabase类 数据集对象(ADoDb.recordset) 相当于delphi的Ttable或Tquery类 其他常见的对象 返回返回 数据库应用程序的组成结构 DBTextDBText DBgridDBgrid DEeditDEedit Data sourceData source Data sourceData source AdotableAdotable AdoqueryAdoquery ADOADO 连接连接 数数 据据 库库 组件概述 (数据集组件)(数据集组件) (ADOconnectionADOconnectiondatabasedatabase) 或AdoTable *.mdf *.mdb 用ADOconnection连接数据库(参照连接例) 首先了解一下怎样连接到Access数据库。当然,当然我们将连接到我们的样例数据库AboutDelphi.mdb 为了能通过ADO和Delphi访问Access数据库的数据,必须在工程中至少增加三个数据可视(data aware)组件。首 先是ADO页的ADOconnection组件负责连接;其次是ADOtable(ADO页),把它们都拖放在表单(Form)上, 提供数据集。 再次是DataSource(DataAccess数据访问页),用于连接数据集和表单上的DBGrid组件,从而实现 潜在数据集数据的现实、导航 (navigation)和编辑;最后是,数据控制(DataControls)组件页的DBGrid用于 浏览从一个表格或通过查询获得的记录。这时表单应如图所示: ADOconnectionADOconnection可以避免多个连接多次连接数据库可以避免多个连接多次连接数据库 接下来开始我们的ADO数据库 编程之旅吧! 现在运行程序,Grid中没有数据显示,因为我们没有真正地连到数据库上。注意另一点:仅仅Grid使可 见的,其他两个组件是不可视控件(controls-unvisible)。 组件间的连接(Link between components) 为了显示数据库中的数据,我们必须把三个组件连在一起。在对象监视器(Object Inspector)中 进行如下设置: DBGrid1.DataSource := DataSource1.DataSet := 为了真正 从数据库中获得数据,我们必须建立一个连接字符串(ConnectionString)。这个字符 串指出了数据库的物理存储位置和访问方式。双击 ADOconnection组件的ConnectionString(连接字 符串)属性的省略号按钮,将得到如下的对话框: DataSource1DataSource1; ADOTable1 ADOTable1 ; 建立一个连接字符串时,我们有两种选择:使用Data Link File(数据连接文件)(.UDL)或手 工建立一个连接字符串。 现在手工建立它,点击Build按钮弹出Data Link Properties(数据连接属性)对话框。这 个对话框有4页。Provider(提供者)页允许指定提供者这里选择Microsoft Jet 4.0 OLE DB Provider。点击Next(下一个)按钮将引导我们进入第二页:Connection(连接)。 选择省略号按钮浏览找到我们的数据库 (AboutDelphi.mdb)。可以点击Test Connection(测试连接)按钮检验是否可以成功连接应该是成功的。其它页暂时不进行 设置。最后,点击OK关闭Data Link Properties对话框,再点击OK关闭ConnectionString 对话框连接字符串被存储在ADOconnection组件的 ConnectionString属性中。连接字符串 已如下所示: Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:!gajbaAboutaboutdelphi.mdb; Persist Security Info=False 为了完成设计,我们必须设置通过ADOTable组件访问的表名称再一次使用 Object Inspector。 ADOTable1.TableName = Applications 如果你想在设计时看见数据库的数据,可使用ADOTable的Active(激活)属性 设置它为True。 如果已进行以上的所有步骤,现在你见看到Applications表仅有一个记录(行)。 当运行应用程序时,甚至可以改变数据库的数据。 请思考: AdoTable是否可以连接数据库? ADOCommand ADODataSet 实验九、数据库的连接 四种组件的作用 四种组件的用法 *数据库组件Database 属性: Alias name:选择数据库目录对应的别名 Databasename:选择数据库组件别名,该别名用于与数据集组件的连接。 Name:设置数据库组件名 Connected:true是数据库组件database与目录中的数据库文件相连接。 Database组件的功能 q 建立应用程序与数据库的连接,获得对数据库的控制。 q 在程序中指定使用的数据库别名。 q 向数据库服务器登录用户。 q 对事务处理的控制。 主要方法:Close方法 主要事件:OnLogin 数据集组件Table Table组件的主要属性 DatabaseName:该属性是数据库组件table通过数据库组件database所使用 的目录数据库文件相连(三种方式) TableName :table与数据库某一表相连 Tabletype readonly Name:如table_tb06 Active:打开具体数据表,当关闭时可修改数据 数据集组件Table(二) 主要方法 Open、close、emptytable/数据表的打开和清空所有记录 First、Last、Next、Prior和MoveBy (n)/记录指针的移动 Bof、Eof Append Appendrecorde字段值列表 Insert Insertrecorde Edit Post Delete Refresh Abort见beforeinsert的代码 实验十、数据集的方法 各种数据集方法的调用 SQL与Query组件 Query组件 编写SQL语句的两种方法 SQL属性的方法 : 静态方法:在sql属性中设置如 Select Tb0601,tb0602 from tb06 order by tb0601 动态方法: with query_tb06 do Begin Sql.clear; Sql.add(Select Tb0601,tb0602 from tb06 order by tb0601); Open; End; 注意:selcet语句中的字符串必须用 -是两对单引号. 如: S:=select * from kyry where +s1+s2+trim(s3)+; 其中s1:=combobox1.text/对应的字段值 S2:= combobox2.text S3:=edit1.text adoquery1.sql.text:= select +AFieldName+ from +ATableName+ where +AFieldName+=+AStr+ and 整型编号=+AnIntStr; 传到数据库服务器为: select 字符型编号 from YourTable where 字符型编号=abc and 整型编号=123 实验十一、Adoquery的使用 利用ADOquery完成数据库动态和静态连接; 熟悉动态添加sql语句的方法(分四步) 正确区分在delphi里字符串的表示形式,必须是两对单引号。 Query组件的方法(sql的执行) 激活active属性:可执行sql语句 调用open方法:只能用于select语句,其他 sql语句必须使用execsql方法。 调用execsql方法:如:insert、update、delete、create等 动态SQL与参数(:XB)使用 SQL中的条件查询需设置动态参数有两种方式: Query的属性:Paramsn .数据类型 paramentbyname(XB).数据类型 备选试验:实现多表关联查询 用sql语句实现多表关联 实现系部编码TB06和班级编码TB03实现: A.TB0601=B.TB0309 如果表明成不同,可省略。 即: TB0601=TB0309 Query的主从表操作见例6_19/本例说明:必须用动态参数实现,如果按上述关联方法,无默认值,原因是字段 名=字段值才符合主从表匹配的关系,不同于普通的关联关系。如果写成TB0601=TB0309 可以完成查询但没纪录返回的原因是,主表数据集关闭,无指针指向。 计算字段的处理 用query组件在数据录入时无法实现多表查询,就要用到计算字段。它并非在表中实际存在,而是自己定义的 字段。 Field type:lookup 使用主从表的关联 Lookup keys :从表的关联字段 Result fields :从表返回字段 Key fields:主表关联字段 Dataset:从表数据集组件 实验十三、计算字段及参照字段 在用query组件进行数据录入时,不允许使用多表关联的sql查询语句。 需要给query组件增加计算字段 属性如下: Field type:lookup/主从表关联 Lookup keys : /主表中和从表关联的字段 Result field : /返回字段(添加记录时要真正显示的) Key fields : /从表中和主表关联的字段 Dataset: /主表的数据集组件 参照字段的用法 返回返回 实验十二、字段对象的引用 Fields Fieldbyname 数据的显示 数据源组件Datasource (数据访问组件Dataaccess页) 主要属性 AutoEdit :允许数据修改 DataSet :使Datasource与数据集组件table相连 Name:如: DatasourceTb06 Enabled 是否在界面组件显示数据 State :见后 主要方法 Edit IsLinkedTo 主要事件 OnDataChange 当数据修改或移到新记录上 OnUpdateData 如在用了post方法后 OnStateChange state状态意义 dsinactiveinactive 数据集关闭,不能访问数据 Dsbrowsebrowse 数据集打开,可浏览 dseditedit 编辑 Dsinsertinsert 插入一条记录 dssetkeysetkey 适用于table dscalcfieldscalcfields 处理oncalcfields事件,不能 修改 dsfilterfilter 正在进行过滤操作 数据集组件状态 数据界面组件(一) Dbedit组件 主要属性: Data source Data field Enabled Readonly DBtext组件 主要属性: Autosize Transparent 数据界面组件(二) Dbmemo组件 主要属性: Autoplay Maxlength Scrollbar Wordwrap Alignment 常用方法: 当Autoplay为false可用Loadmemo方法 数据界面组件(三) DBimage 重要属性: Auto display Picture 常用方法: loadpicture DBlistbox(需自己加载) 重要属性: Datasource Datafield Items 使用方法: 说明DBlistbox和Dbmemo组件 DBListBox1.Items.Add(ADOTable1.FieldValues成绩); 数据界面组件(四) Dbcombobox 相当于DBedit和DBlistbox的组合。 重要属性: Datasource Datafield Items Dblookuplistbox Dblookupcombob
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030儿童医疗游戏化产品医患接受度临床测试
- 2025-2030健康中国战略下医疗健康管理咨询服务发展前景
- 2025-2030体外循环设备安全性评价体系及未来发展展望
- 2025-2030传统木雕工艺与现代实木家具融合创新报告
- 2025-2030会展文创产品开发与衍生品市场价值评估专题
- 2025年跨部门协作团队建设与培养研究报告
- 秦皇岛市人民医院康复治疗方案制定考核
- 2025吉林长春市直事业单位招聘高层次人才17人(4号)考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025辽宁抚顺高新热电有限责任公司招聘专业技术人员18人模拟试卷及一套答案详解
- 2025年第二季度(第一次)贵州黔东南州天柱县招聘全日制城镇公益性岗位8人模拟试卷附答案详解(模拟题)
- 土石方平场施工方案
- 2023年临汾市翼城县社区工作者招聘考试真题
- 《高级会计学(第9版)》习题答案
- 左传人物关系表还原版
- 快手磁力聚星星选达人认证考试试卷答案
- 临高县和舍镇先光村民委员会诉海南省国营西流农场土地纠纷一案
- 水泥混凝土路面设计
- 无机及分析化学 化学反应速率和化学平衡
- TY/T 3001-2006中国青少年儿童 手腕骨成熟度及评价方法
- GB/T 7631.5-1989润滑剂和有关产品(L类)的分类第5部分:M组(金属加工)
- 急性心力衰竭治疗的最新指南
评论
0/150
提交评论