论文网首页|会计论文|管理论文|计算机论文|医药学|经济学论文|法学论文|社会学论文|文学论文|教育论文|理学论文|工学论文|艺术论文|哲学论文|文化论文|外语论文|论文格式
中国论文网

用户注册

设为首页

您现在的位置: 中国论文网 >> 计算机论文 >> 计算机应用论文 >> 正文 会员中心
 计算机应用论文   计算机理论论文   计算机网络论文   电子商务论文   软件工程论文   操作系统论文   通信技术论文
利用Delphi开发网络数据库应用

 delphi 是具可视化界面的面向对象编程语言,它以其功能强大、简便易用等诸多特性,深受编程人员的欢迎。delphi 中提供了数据库引擎 bde(borland database engine),并内含众多的数据库调用构件,为编程人员开发客户/服务器应用程序提供了方便。通常情况下,利用 delphi 开发数据库应用程序,可以使用ttable、tdatasource、tdbedit、tdbnavigator等构件。只要正确设置了构件的某些属性,再编写必要的程序代码对一些特定事件进行处理,就能够完成对多种数据库进行的数据处理,例如:记录的输入、修改、删除和查询等。这样做虽然只需要编写极少量的程序代码就能达到很好的效果,但如果在程序设计过程中,某些数据表的结构发生了改变,则必须修改与此数据表有关的所有构件的属性,这将使程序员陷入繁琐的重复劳动中。

  为避免上述的麻烦,我们可以在编写网络数据库应用程序时采用结构化查询语言 sql(structured query language),这样不仅可以更方便地与诸如 sql server、oracle 等各种后台数据库进行动态的数据交换,而且可以使程序的修改和移植更加灵活。我们以数据输入模块为例,说明开发客户/服务器应用程序时如何采用 sql 语句实现数据处理功能。首先,判断是否已经有事务处理程序在运行,如果有,将其回卷(rollback);如果没有,则启动一个新的事务,为数据的最终处理做准备。其次,是设置 sql 语句,并将其写入 tquery 构件中。wWW.11665.Com最后,将事务提交或回卷,至此完成一条记录的数据输入。

  下面是以页面中的 tedit 类型编辑框内容作为数据源,向数据库输入记录的过程代码:

procedure datainsert(const qname:tquery;
szdbname:string;inum:integer;
      imark:array of integer;ename:array of tedit);
var
  i : integer;
  szsql : string;
begin
  if datamodule1.database1.intransaction=true then
 datamodule1.database1.rollback;
  datamodule1.database1.starttransaction;
  szsql := 'insert into '+szdbname+' values('
  for i:=0 to inum-1 do
  begin
    if imark[i]=0 then
 szsql := szsql+ename[i].text {非字符方式}
    else
 szsql := szsql+'"'+ename[i].text+'"'; {字符方式}
    if i=inum-1  then
        szsql := szsql+')'
    else
 szsql := 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;

  以上过程包含五个参数,实现从页面中的一系列编辑框中读取数据,并向指定数据表输入的功能。其中,参数 qname 为页面中所使用的 tquery 类构件的名称;参数 szdbname 是数据表的名称;参数ename 是 tedit 类型的数组,列出了页面中包含数据的各编辑框名称;参数 inum 是数据表中的字段个数,也即编辑框的个数;参数 imark 是一个整数类型的数组,该参数表明相应字段是以何种方式输入的,如果是字符方式,需要在数据前后两端加上引号。需要注意的是:在调用本过程之前,应将数据库连接打开:

datamodule1.database1.connected := true;

过程调用完成后,将数据库连接断开:
datamodule1.database1.connected := false;
  另外,开发网络数据库应用程序时,还可以使用存储过程,即:将预先编译过的 sql 语句存储在服务器上。存储过程提前运行,且不与程序代码一同存储和编译,因此其对应主程序中的代码相对简洁,运行速度也较快。sql 语句的集中存放,使其修改更容易。

  要创建向数据表中输入数据的存储过程,代码编写举例如下:

create proc proctest1
  @inttest smallint
  ,@strtest char(4) output
as
  insert into test_user.trans_test
  values(@inttest,@strtest)
  select @strtest,* from test_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] 是存储过程中的第一个参数,对应存储过程 proctest1 可以用parambyname('@inttest')代替;存储过程的第二个参数与其类似。

  实际上,编写对网络数据库进行其他数据处理(如:修改、删除和查询等)的模块,与数据的输入模块大体相似,这里就不再赘述了。

  • 上一个计算机论文:
  • 下一个计算机论文:
  •  作者:林江 [标签: 网络 数据库 应用 ]
    姓 名: *
    E-mail:
    评 分: 1分 2分 3分 4分 5分
    评论内容:
    发表评论请遵守中国各项有关法律法规,评论内容只代表网友个人观点,与本网站立场无关。
    作文教学中如何利用乐曲激发学生想象力
    充分利用“国学热”,推进高校大学生思想政治
    利用信息系统提高对医院公共卫生管理的探究
    浅谈利用GHOST软件维护操作系统
    利用网络优势促进公民问责的发展
    展望Dextroscope虚拟现实手术规划系统在神经
    如何利用数据库及ASP技术类构建多功能网站
    利用开源框架Struts+Hibernate实现Web应用程
    试论如何利用计算机软件技术进行培训信息管
    利用Geoway—Checker软件设计1:5千缩编1:
    利用网络技术 改善教学过程
    刍议如何利用计算机办公软件提高审计的效率
    | 设为首页 | 加入收藏 | 联系我们 | 网站地图 | 手机版 | 论文发表

    Copyright 2006-2013 © 毕业论文网 All rights reserved 

     [中国免费论文网]  版权所有