付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
利用Delphi开发网络数据库应用
Delphi是具可视化界面的面向对象编程语言,它以其功能强大、简便易用等诸多特性,深受编程人员的欢迎。Delphi中提供了数据库引擎BDE(BorlandDatabaseEngine),并内含众多的数据库调用构件,为编程人员开发客户/服务器应用程序提供了方便。通常情况下,利用Delphi开发数据库应用程序,可以使用TTable、TDataSource、TDBEdit、TDBNavigator等构件。只要正确设置了构件的某些属性,再编写必要的程序代码对一些特定事件进行处理,就能够完成对多种数据库进行的数据处理,例如:记录的输入、修改、删除和查询等。这样做虽然只需要编写极少量的程序代码就能达到很好的效果,但如果在程序设计过程中,某些数据表的结构发生了改变,则必须修改与此数据表有关的所有构件的属性,这将使程序员陷入繁琐的重复劳动中。为避免上述的麻烦,我们可以在编写网络数据库应用程序时采用结构化查询语言SQL(StructuredQueryLanguage),这样不仅可以更方便地与诸如SQLServer、Oracle等各种后台数据库进行动态的数据交换,而且可以使程序的修改和移植更加灵活。我们以数据输入模块为例,说明开发客户/服务器应用程序时如何采用SQL语句实现数据处理功能。首先,判断是否已经有事务处理程序在运行,如果有,将其回卷(rollback);如果没有,则启动一个新的事务,为数据的最终处理做准备。其次,是设置SQL语句,并将其写入TQuery构件中。最后,将事务提交或回卷,至此完成一条记录的数据输入。下面是以页面中的TEdit类型编辑框内容作为数据源,向数据库输入记录的过程代码:procedureDataInsert(constqName:TQuery;szDBName:string;iNum:Integer;
iMark:arrayofInteger;eName:arrayofTEdit);vari:Integer;szSQL:string;beginifDataModule1.DataBase1.InTransaction=truethenDataModule1.DataBase1.RollBack;DataModule1.DataBase1.StartTransaction;szSQL:='INSERTINTO'+szDBName+'VALUES('fori:=0toiNum-1dobegin
ifiMark[i]=0thenszSQL:=szSQL+eName[i].Text{非字符方式}
elseszSQL:=szSQL+'"'+eName[i].Text+'"';{字符方式}
ifi=iNum-1thenszSQL:=szSQL+')'
elseszSQL:=szSQL+',';end;qName.Close;{关闭查询}qName.SQL.Clear;{清SQL特性内容}qName.SQL.ADD(szSQL);{添加SQL内容}szSQL:='SELECT*FROM'+szDBName;qName.SQL.ADD(szSQL);qName.Open;{返回结果集}DataModule1.DataBase1.Commit;end;DataModule1.DataBase1.Connected:=true;过程调用完成后,将数据库连接断开:DataModule1.DataBase1.Connected:=false;
另外,开发网络数据库应用程序时,还可以使用存储过程,即:将预先编译过的SQL语句存储在服务器上。存储过程提前运行,且不与程序代码一同存储和编译,因此其对应主程序中的代码相对简洁,运行速度也较快。SQL语句的集中存放,使其修改更容易。要创建向数据表中输入数据的存储过程,代码编写举例如下:CREATEPROCProcTest1@inttestsmallint,@strtestchar(4)outputASINSERTINTOTEST_User.TRANS_TESTVALUES(@inttest,@strtest)SELECT@strtest,*FROMTEST_User.TRANS_TEST
以上代码向数据表TEST_User.TRANS_TEST添加数据,该数据表包括两个字段:第一个字段为smallint类型的数据,参数类型定为Input(在存储过程中可缺省);第二个字段数据为长度为4的字符类型,参数类型为Output。其模块程序的编写与DataInsert过程相似,区别主要在于模块的中间部分,对应的主要代码如下:StoredProc1.Close;{关闭存储过程}StoredProc1.Params[1].ParamType:=ptInput;{设置存储过程的参数类型}StoredProc1.Params[1].AsInteger:=1;{设置存储过程中参数的数据}StoredProc1.Params[2].ParamType:=ptOutput;StoredProc1.Params[2].AsString:='abcd';StoredProc1.Open;{打开存储过程}
其中,StoredProc1是TStoredProc类型的构件名称;Params[1]是存储过程中的第一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年县乡教师选调考试《教育学》通关练习题和答案附答案详解(综合卷)
- 2026年一级注册建筑师之建筑材料与构造考试黑钻押题含答案详解【培优A卷】
- 2026年县乡教师选调考试《教育学》练习题(一)含答案详解(考试直接用)
- 2026年土地登记代理人之土地登记相关法律知识经典例题【综合题】附答案详解
- 水生动物苗种繁育工保密强化考核试卷含答案
- 普通过磷酸钙生产工安全规程水平考核试卷含答案
- 2025年压力管道检验员试题库
- 2025年押题宝典县乡教师选调考试《教育学》题库附答案详解【完整版】
- 2026年县乡教师选调考试《教育学》通关提分题库完整答案详解
- 2025年县乡教师选调考试《教育学》预测试题附参考答案详解(完整版)
- 医药信息咨询公司管理制度
- 2025年乡村医生基础医学知识测试题库:神经系统疾病案例分析
- 订单计划达成管理制度
- 临床护理带教的方法与技巧
- “双减”背景下中小学作业数字化管理模式探究
- 2025人教版(2024)小学美术一年级下册教学计划、教学设计及教学反思(附目录)
- 医生独立值班申请书
- 草料购买合同范例
- 【川教版】《生命 生态 安全》五下全册课件
- 2023年泸州市泸县选调机关事业单位人员考试真题
- 《世界地理-撒哈拉以南的非洲》备课讲稿
评论
0/150
提交评论