利用Delphi开发网络数据库应用

时间:2020-08-16 19:06:09 计算机毕业论文 我要投稿

利用Delphi开发网络数据库应用

 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;