下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 基于firedac开发datasnap三层数据库应用 刘之烨雷聚超胡静宜摘 要:服务器与数据库之间的连接直接影响了datasnap三层数据库应用系统的传输效率。现阶段主流的连接技术为ado与dbexpress。但是开发过程中存在着数据引擎兼容性不高、封装繁琐、连接逻辑复杂等问题。因此提出使用firedac数据引擎开发datasnap三层c/s结构的数据库应用。文章根据在delphi xe10平台的开发过程得出firedac数据引擎具有连接逻辑简单,数据库兼容性强等优点,更适合用于开发datasnap三层数据库应用。关键词:firedac;
2、datasnap技术;三层c/s结构:tp311 文献标志码:a :2095-2945(2017)36-0120-02引言三层c/s结构较于传统的两层c/s结构具有更好稳定性、安全性、易维护性,同时也具有更快的响应速度等优点。因此在开发大型数据库应用系统的过程中,三层c/s结构的应用越来越普遍。delphi是一个功能强大,基于windows环境,面向对象的可视化应用软件开发工具。它结合了传统的编程语言object pascal和数据库语言的强大功能,既可以用于传统算术编程又可以用于数据库编程。delphi中的datasnap技术体系,提供了客户端和应用服务器之间传递数据库信息的机制,同时丰富的
3、组件库给程序的设计带来极大的便利。delphi已经成为当前最流行的c/s开发工具之一。开发datasnap三层数据库应用的过程中,必须首先建立与数据库之连接,它是应用程序和后台数据库之间交换数据的前提。1 firedac基本原理firedac不使用iappserver接口,而是把datasnap服务器当作api来呼叫。客户端使用tfdconnection组件通过tcp/ip或http/https协议连接使用firedac开发的datasnap服务器,使用tfdstoredproc组件呼叫服务器api。如果客户端呼叫的api需要回传数据,那么firedac会以stream的格式传递数据,如果要对
4、数据进行包含异动的工作,那么可以搭配使用firedac的中央快储功能来帮助程序员对数据进行异动。在datasnap架构中要使用firedac的中央快储功能,需要在应用服务器使用tfdschemaadapter组件。而在firedac客户端则需要使用tfdtableadapter组件把客户端tfdmemtable罪案中的数据从应用服务器取回或是从客户端把异动的数据更新回应用层服务器。因此要使用firedac开发datasnap应用,需要下列步骤:(1)开发使用firedac的datasnap服务器,并使用firedac中央快储功能。(2)开发使用firedac的客户端,使用tfdconnecti
5、on连接服务器。(3)使用tfdstoredproc组件呼叫服务器api。(4)处理数据流(stream data)。(5)使用tfdstoredproc组件呼叫服务器的api把异动数据回传给firedac的datasnap服务器,再由firedac的中央快储功能把数据更新回数据库。2 三层数据库应用的实现过程2.1 创建数据库(1)在mysql中创建名为xatu的数据库,在数据库中创建test表,增加两列,列名分别为“xm”和“xh”并录入信息作为查询之用。(2)将mysql的动态链接库文件libmysql.dll存放到c:windowssystem32目录下。2.2 创建datasnap服
6、务器(1)主菜单“file”->“new”->“other”在“new items”对话框中选择datasnap server,启动向导。“project type”选择“forms application”、 “application type”选择“vcl application” 默认tcp/ip为通讯协议,测试端口211,选择tdatamodule 作为服务器端api类别。完成后,生成三个工程文件servercontainerunit1.pas、unit1.pas。servermethodsunitsunit1.pas存放網络服务相关的控件,unit1.pas是服务器的主界
7、面,servercontainerunit1.pas是我们需要进一步开发的工程文件。(2)打开servermethodsunitsunit1.pas,加入tfdschemaadapter、tfdquery、tfdstanstoragejsonlink等组件。tfdstanstoragebinlink和tfdstanstoragejsonlink的作用是让firedac可以处理2进制(tcp/ip)和json(http)格式的数据。(3)进入code单元,在public下添加代码“function get:tstream;”。添加的get方法可以让客户端查询信息。firedac中要在客户端和应用
8、服务器之间传递数据,只需要传递tstream形态的数据。get()方法首先建立一个tmemorystream对象,再开启fdquery1组件取得数据,然后把fdquery1组件中的数据对象通过tmemorystream类中的savetostream方法拷贝到tmemorystream对象中,最后把tmemorystream对象回传给客户端。(4)编译运行datasnap服务器。2.3 创建datasnap客户端endprint(1)主菜单“file”->“new”->“muti-device application”,在窗体中添加tfdconnection、tfdguixwaitc
9、ursor、tfdphysdsdriverlink等组件。(2)在主界面的button1的onclick事件中呼叫getxx()方法和showxx()方法。getxx方法获取数据,showxx()方法展示数据。getxx()方法只需要呼叫fdstoredproc1的execproc()方法,firedac就可以呼叫datasnap服务器中指定的服务方法(get),呼叫成功后datasnap服务器回传的数据回存储在fdstoredproc1的第一个参数中,型态是ftblob。创建一个tstringstream对象把fdstoredproc1的第一个参数内容作为建构元参数,tstringstrea
10、m对象的内容就是回传的结果,把tstringstream对象包含的数据流位置设定到起始位置,再通过fdmemtable1组件的loadfromstream()方法从tstringstream对象中读取数据流并还原。(3)编写代码并执行客户端,点击button按钮,数据库中的信息已经通过应用层服务器传输到客户端,并展示在listview组件中。至此一个基于firedac的datasnap三层数据库应用已经搭建完成,进一步的开发除了需要根据用户需求完善客户端界面外,还需要根据需求编写对应的应用层业务逻辑,完成相应的功能。3 结束语根据以上开发过程可以得出firedac有以下优点:(1)跨数据库平台
11、。firedac作为一个通用数据访问库,用于开发与企业数据库连接的多个设备的应用程序。通过其强大的通用架构,firedac可实现从delphi到interbase,sqlite的本机高速直接访问。(2)访问快速。firedac数据集建立在强大的数据访问引擎之上。这种轻便,有效和灵活的引擎可以直接在应用程序中使用,并且是数据集api的强大基础。(3)良好的兼容性。firedac可以使用tdataset后代类,包括tfdquery,tfdmemtable,tfdstoredproc和tfdtable。同時数据集类与原始bde数据集和clientdataset高度兼容。firedac技术和datasnap技术相结合,为三层数据库应用的开发提供了良好的支持,为构建满足不同需求的多层c/s体系的数据库应用程序打下了良好基础。定会成为日后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版家电产品消费者满意度调查服务合同2篇
- 二零二五版房地产融资居间代理合同范本3篇
- 二零二五年电影联合制作与市场推广合同2篇
- 二零二五版茶叶茶具专卖店加盟管理合同3篇
- 二零二五版汽车购置贷款保证担保合同3篇
- 二零二五年度化肥原料进口与分销合同3篇
- 二零二五年度航空航天股权买卖合同范本3篇
- 二零二五版户外广告牌定期检查与维修合同3篇
- 二零二五年度驾校车辆购置税承包合同3篇
- 国际贸易第六章出口合同订立2025年绿色贸易标准与认证3篇
- 15.5-博物馆管理法律制度(政策与法律法规-第五版)
- 水泥厂钢结构安装工程施工方案
- 2023光明小升初(语文)试卷
- 三年级上册科学说课课件-1.5 水能溶解多少物质|教科版
- GB/T 7588.2-2020电梯制造与安装安全规范第2部分:电梯部件的设计原则、计算和检验
- GB/T 14600-2009电子工业用气体氧化亚氮
- 小学道德与法治学科高级(一级)教师职称考试试题(有答案)
- 河北省承德市各县区乡镇行政村村庄村名居民村民委员会明细
- 实用性阅读与交流任务群设计思路与教学建议
- 应急柜检查表
- 通风设施标准
评论
0/150
提交评论