Delphi在网络数据库中的应用

2016-01-29 14:14 15 1 收藏

Delphi在网络数据库中的应用,Delphi在网络数据库中的应用

【 tulaoshi.com - Delphi 】

 

  
  随着Internet的普及和发展,Web成了新的商家必争之地,各家厂商都希望通过Internet技术与最终用户建立直接的联系,比如在Web上向用户推销产品、方便用户在网上查询自己喜欢的商品并提供网上订购服务等,于是产生了CGI(公用网关接口)、ASP等一系列生成动态网页的方法。CGI是最早生成动态网页的方法,几乎所有的WEB服务器都支持它,由于CGI程序是作为独立的外部应用程序来执行的,它要与服务器上的其他程序竞争系统资源,从而降低了服务器运行的效率。另外,使用CGI开发WEB应用时要求程序员不仅要掌握HTML语言,而且还要精通具体的某个编程语言。Delphi是针对CGI效率低的缺点提出来的,它通常以动态链接库的形式出现,是驻留在WEB服务器上的程序,Delphi技术执行程序的效率要大大优于CGI技术,而且开发起来也要相对简单一点。
  Delphi 是具可视化界面的面向对象编程语言,它以其功能强大、简便易用等诸多特性,深受编程人员的欢迎。Delphi 中提供了数据库引擎 BDE(Borland Database Engine),并内含众多的数据库调用构件,为编程人员开发客户/服务器应用程序提供了方便。通常情况下,利用 Delphi 开发数据库应用程序,可以使用TTable、TDataSource、TDBEdit、TDBNavigator等构件。只要正确设置了构件的某些属性,再编写必要的程序代码对一些特定事件进行处理,就能够完成对多种数据库进行的数据处理,例如:记录的输入、修改、删除和查询等。这样做虽然只需要编写极少量的程序代码就能达到很好的效果,但如果在程序设计过程中,某些数据表的结构发生了改变,则必须修改与此数据表有关的所有构件的属性,这将使程序员陷入繁琐的重复劳动中。
  为避免上述的麻烦,我们可以在编写网络数据库应用程序时采用结构化查询语言 SQL(Structured Query Language),这样不仅可以更方便地与诸如 SQL Server、Oracle 等各种后台数据库进行动态的数据交换,而且可以使程序的修改和移植更加灵活。我们以数据输入模块为例,说明开发客户/服务器应用程序时如何采用 SQL 语句实现数据处理功能。首先,判断是否已经有事务处理程序在运行,如果有,将其回卷(rollback);如果没有,则启动一个新的事务,为数据的最终处理做准备。其次,是设置 SQL 语句,并将其写入 TQuery 构件中。最后,将事务提交或回卷,至此完成一条记录的数据输入。
  下面是以页面中的 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 I

来源:https://www.tulaoshi.com/n/20160129/1492838.html

延伸阅读
delphi 最吸引人的特点之一就是它的强大的数据库访问能力,通过database desktop 工具可方便的建立、编辑数据库。由于实际原因我们往往需要在程序运行状态下动态建立某个数据库。 如果你让用户用database desktop 工具手工建立数据表那么你写的程序将会打大折扣,不过你不用担心delphi完全可以用语言来完成此功能,为我们提供方便。我...
  学习Delphi有一个星期了,Delphi是Pascal的派生,可是说学过pascal到学起来很容易,当然我学过VB(visual basic),当然相对来说比较熟悉这门语言,可是时间长了不学也忘记了好多,但是学习Delphi上手快多了,尤其是我现在学的这本书是关于Delphi数据库设计,学习的过程中好多当年学VB时候那些捆绑数据库控件比如:ADO等都浮现在脑海中...
在使用DBGRID控件时显示DATATIME时其年份是为2位的,但我们在步入2000年后需要显示的日期是4位, 如:1998、2001。在数据库中该字段只有在2000年后才会显示4位,怎么办呢?下面我们就让该字段在DBGRID控件 中也显示4位的日期格式:双击Table1控件,就会出现form1.table窗体,击右键,选 Add Fields...,选择日期字段后按ok,窗体中就出现了...
数据库复本是复制数据库的技术,利用这种技术,可以是数据库的几个拷贝保持同步。数据库的每个拷贝称为一个复本,并且每个复本都包含一个公共的表、查询、窗体、报表、宏和模块的集合;每个复本还可以包含只在本地计算机上使用的本地对象。 在多用户环境中,一个数据库可能由多个用户使用。在多用户应用程序中,数据库复本可以改善用户共...
 Delphi是著名的Borland公司开发的可视化软件开发工具。有这样一句话最为经典、贴切的描述了Delphi——“真正的程序员用C,聪明的程序员用Delphi”。很多人把Delphi称为是第四代编程语言,它具有简单、高效、功能强大等特点。和Visual C++比较,Delphi更简单、更易于学习掌握,而在功能上却毫不逊色;和Visual Basic相比,Delphi则...