您当前的位置:首页 > 互联网教程

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

发布时间:2025-05-24 02:54:56    发布人:远客网络

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

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

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

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

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

4、 procedure DataInsert(const qName:TQuery; szDBName:string;iNum:Integer; iMark:array of Integer;eName:array of TEdit); var i: Integer; szSQL: string; begin if DataModule DataBase InTransaction=true then DataModule DataBase RollBack; DataModule DataBase StartTransaction; szSQL:= INSERT INTO+szDBName+ VALUES( for i:= to iNum do begin if iMark[i]= then szSQL:= szSQL+eName[i] Text{非字符方式} else szSQL:= szSQL++eName[i] Text+;{字符方式} if i=iNum 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;{返回结果集} DataModule DataBase Commit; end;以上过程包含五个参数实现从页面中的一系列编辑框中读取数据并向指定数据表输入的功能其中参数 qName为页面中所使用的 TQuery类构件的名称参数 szDBName是数据表的名称参数eName是 TEdit类型的数组列出了页面中包含数据的各编辑框名称参数 iNum是数据表中的字段个数也即编辑框的个数参数 iMark是一个整数类型的数组该参数表明相应字段是以何种方式输入的如果是字符方式需要在数据前后两端加上引号需要注意的是在调用本过程之前应将数据库连接打开

5、 DataModule DataBase Connected:= true;

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

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

8、 CREATE PROC ProcTest@inttest*** allint@strtest char() output AS INSERT INTO TEST_User TRANS_TEST VALUES(@inttest@strtest) SELECT@strtest* FROM TEST_User TRANS_TEST以上代码向数据表 TEST_User TRANS_TEST添加数据该数据表包括两个字段第一个字段为*** allint类型的数据参数类型定为 Input(在存储过程中可缺省)第二个字段数据为长度为的字符类型参数类型为 Output

9、其模块程序的编写与 DataInsert过程相似区别主要在于模块的中间部分对应的主要代码如下

10、 StoredProc Close;{关闭存储过程} StoredProc Params[ ] ParamType:= ptInput;{设置存储过程的参数类型} StoredProc Params[ ] AsInteger:=;{设置存储过程中参数的数据} StoredProc Params[ ] ParamType:= ptOutput; StoredProc Params[ ] AsString:= abcd; StoredProc Open;{打开存储过程}其中 StoredProc是 TStoredProc类型的构件名称 Params[ ]是存储过程中的第一个参数对应存储过程 ProcTest可以用ParamByName(@inttest)代替存储过程的第二个参数与其类似

二、关于DELPHI动态数据库

--------------------------------------------------------------------------------

在程序运行过程中动态建立数据库结构是我们编写功能通用的数据库管理系统常见

的问题。通用数据库管理系统开发的基本思路是:系统允许用户自行设定管理对象的数据

库结构,然后通过算法和编程技巧,在用户设定完成后动态创建管理对象的数据库结构和

完成系统功能的一些其它数据,这样可以满足不同用户对管理系统管理项目的不同要求,

进而达到通用的目的。因此,通用数据库管理系统开发的关键是系统能否动态地创建数据

库结构。我们熟悉的Foxbase+、Foxpro等语言,均提供了动态创建数据库结构的命令或过

但是,在许多资料和书籍中,没有介绍用Delphi如何动态建立数据库结构,给我们开发

一些功能通用的数据库管理系统带来了不便。那么如何在Delphi中动态建立数据库结构

呢?本文是作者在查阅大量资料,经过反复实践的基础上得出的在Delphi中动态创建数据

在Delphi中要进行数据库管理必须先设置好数据库配置程序BDE,所有对数据库的操

作,最后都要通过BDE去完成。下面以最常见的Dbase数据库为例来配置Delphi的数据库引

1.进入Delphi的集成开发环境IDE(Integrated Development Environment),在Dat

abase菜单下选择Explore,出现SQL Explorer窗体,在Object菜单下选择BDE Administra

2.出现BDE Administrator窗体后在Database页上选择Dbase,在Definition页中将

Type项设为Standard;将Default Driver项设为Dbase;将Path项设为一工作目录名(如:D

:\MYNAME)。以上过程即为数据库的别名(Aliases)设置,这在以后Delphi的程序开发过程

3.选择Configration页,在Drivers的Native项中选择Dbase,在Definition页中将T

ype项设为File;将Langdriver项设为DBASE CHS CP936;将Level项设为5。

4.完成上述工作后,在Object菜单中选择Save as Configration,按出现的对话框要

求将以上的设置保存好。至此,数据库的基本配置工作就完成了,我们就可以进行下面的

在Delphi中动态创建数据库结构有两种方法。

方法一:使用Table组件的CreateTable方法。步骤如下:

1.进入Delphi的IDE建立一个新项目文件和新窗体(Form1)单元文件(unit1.pas)。

2.在Form1上加入Table1、Edit1、Edit2、Button1组件。将Button1组件的Captio

3.用鼠标双击Button1进入Unit1.pas单元文件,在光标处加入下列代码。

fielddefs.add(edit1.text,ftstring,10,false)

fielddefs.add(edit2.text,ftinteger,0,false)

4.按F9键编译运行,在Edit1处输入一字段名称:ZD1,在Edit2处输入一字段名称:ZD

2,然后点击"创建"按钮,程序将在D:\MYNAME目录中产生一个名为MY.DBF的数据库文件,用

Database Desktop查看文件结构如下:

方法二:使用Query组件,用结构化查询语言SQL(Structured Query Language)语句创

2.在Form1窗体中加入Query1、Button1组件,将Query1的Database Name属性设为‘

Dbase’;将Button1组件的Caption属性设为‘创建’。

3.在Query1的SQL属性单击,出现Sting List Editor窗口,在该窗体中输入以下SQL

4.双击Button1进入Unit1.pas单元,在光标处加入下列代码:

5.按F9键编译运行,在"创建"按钮处单击即可产生一个名为MY.DBF的数据库文件,

存放在D:\MYNAME目录中,用Database Desktop查看其结构如下:

以上所介绍的操作和程序均在Windows98操作系统下,Delphi 3.0 C/S版上调试运行

三、新手如何delphi开发数据库

在delphi中有一批数据库专用的控件,比如ADO类的,可以直接用于数据库开发,你可以先用一个Access数据库自己进行一下测试。

首先在窗体上放一个ADOConnection1控制,用于与Access数据库进行连接,连接字符串为:

ADOConnection1.ADOC_Data.ConnectionString:='provider=Microsoft.Jet.OLEDB.4.0;'

//+'DataSource='+ExtractFilePath(Application.ExeName)+'MyRecord.mdb;'

+'DataSource='+MyDataBaseName+';'

+'Mode=ShareDenyNone;ExtendedProperties=\"\";'

+'JetOLEDB:Systemdatabase=\"\";'

+'JetOLEDB:RegistryPath=\"\";'

+'JetOLEDB:DatabasePassword=\"123456;'//数据库密码

+'JetOLEDB:DatabaseLockingMode=1;'

+'JetOLEDB:GlobalPartialBulkOps=2;'

+'JetOLEDB:GlobalBulkTransactions=1;'

+'JetOLEDB:NewDatabasePassword=\"\";'

+'JetOLEDB:CreateSystemDatabase=False;'

+'JetOLEDB:EncryptDatabase=False;'

+'JetOLEDB:Don'+''''+'tCopyLocaleonCompact=False;'

+'JetOLEDB:CompactWithoutReplicaRepair=False;'

DM.ADOC_Data.LoginPrompt:=False;

再放一个ADOQuery1控制,用于操作数据表,将它的Connection属性设置为ADOConnection1。或用语句实现:ADOQuery1.Connection:=ADOConnection1;

然后再分别放置一个DataSource1和一个DBGrid1控件,

将DataSource1的DataSet属性设置为ADOQuery1。

将DBGrid1的DataSource属性设置为DataSource1。

这时就可以通过ADOQuery1来执行SQL语句来查询数据表,并通过DBGrid1显示出来了。