作者:思索 整理:南海
数据库编程示例
在本次讲座中,我们以Delphi5为开发工具,标准的paradox表为后台数据库,来向大家介绍如何进行最简单的数据库编程。在本例中,我们将实现对一个数据表单的添加、修改、删除以及对表中数据进行查询的功能。
本例所使用的计算机软硬件环境为:Windows NT 4.0 Server,Borland Delphi 5,PIII550,256M内存。当然啦,一般的朋友在Win98的环境下或者Win2000的环境下都可以按照本例的步骤来编程序的。笔者的机器主要用作服务器,所以就在服务器上编啦。废话少说,现在开始:
在正式编写程序之前要有许多准备工作,这当然包括Borland Delphi 5的安装。Delphi5自身带了对标准数据表paradox的驱动(和一些fox系列数据库软件的.db文件是兼容的,这些文件都可以由Delphi直接读取)。
程序编写的第一步首先是数据表(即.db文件)的建立。在这一步要用到Delphi自带的一个工具叫Database Desktop。这个工具主要用来对表格进行操作,它不仅可以操作像.db文件这样的标准表格,还可以访问像Oracle、SQL Server等大型数据库的文件,功能可以说是很强大的。打开Database Desktop,选择File-New-Table,然后选择paradox7,出现如下界面:
在FieldName里面填写你要建立的表单的属性名称,如图所示,本例中要建立的是人员管理表,所以建立的属性为编号、姓名、性别、工作单位、工资、备注等。除工资之外的属性都是字符串类型,即图中Type项所选择的A(Alpha),而Size则是指的字符串的长度,属性值的长度是根据属性的具体意义来确定的,例如“性别”选择只有“男”和“女”,一个汉字的长度,那么性别属性的长度设置成2就可以了(一个汉字等于两个字符的长度)。而工资属性是数值类型的,在paradox中用Number来标记,即和前面对应的一个“N”。属性设置完毕后,选择Save As存盘。本例中,所建立的数据表格的存放路径和文件名为:D:\Program Files\Borland\Database Desktop\WorkDir\ryb.db(人员表)。
这样就完成了第一步,这一步只是编程之前的准备工作,也是后面针对这个表单编写数据库应用程序的基础。下面要进行的就是实际的程序编写了,请打开Borland Delphi 5。
在缺省的Form1上放置这样一些控件(控件的位置就不用俺再罗嗦了吧?):TdataBase、Ttable、TdataSourse、TdbGrid、Tlabel、TdbNavigator。按照你喜欢的界面风格来放置这些控件,如下图本例中的控件放置:
下一步就是控件属性的设置啦,这一步也是本例中最关键的一步,因为许多网友对使用前端开发工具对后台数据库进行编程比较生疏,也就是在这个地方。
我们将Tdatabase的DataBaseName属性设置成Mydb(这个名字可以随便起),drivername为STANDARD(表明驱动的是paradox表),params属性为path=D:\Program Files\Borland\Database Desktop\WorkDir(存放.db文件的路径,前面已经提到),connected设为true(和数据表建立起连接),其他属性使用缺省值就可以了。
然后将Table的Databasename属性设为Mydb(即Database1的DataBaseName属性),tablename为ryb.db(即数据表的名字)Active属性设置为True(打开表单,便于编写程序)。
接着将Datasourse1的dataset属性设为为Table1(Ttable的name属性值)。另外DBNavigator1和 DbGrid1的datasourse属性都设为datasourse1。Tlabel的caption属性设为“数据库编程示例”,如图所示(可以根据个人喜好修改字体,使它变得好看一些)。
>这样控件的属性就设置完毕了,注意到dbgrid里面的“编号”、“姓名”等栏都是数据表中的属性,在ryb.db里面定义,而不是在前端的 delphi程序里面定义。点击run按钮之后,这个简单的程序就运行了(见下图)。
>这是通过Dbnavigator上的按钮就可以控制对表单进行数据的添加、删除、修改了(将DbNavigator的ShowHint属性改为 True的话可以在运行时看到各个按钮的提示)。
至此,我们实现了使用Delphi这种快速开发工具编写简单的数据库应用程序,细心的读者可能注意到了,到目前为止连一行程序都没有写,确实是这样,这就是第四代程序设计语言(可视化的编程语言)给我们带来的好处。当然啦,要编写比较复杂的程序不写代码是不可能的,下面我们将在上面的基础上实现查询的功能,并给大家附上源程序。在Form增加如下控件:一个Tquery、一个 Tbutton、4个Tlabel、2个Tedit。并将Tlabel的属性进行下图所示的修改(新增加的控件都在黑色方框中):
将Query1的DataBaseName属性也设置成MyDb(和Table一样),SQL属性中写入Select* from ryb,RequestLive设为True(这样可以对Query里面的数据进行修改),然后将Active属性设为True。最后将 DataSourse1的DataSet属性改为query1(此时Table1控件可以从Form上去掉了)。
双击Button1,在程序编辑器里面写入如下代码:
Query1.close;
Query1.Sql.clear;
Query1.SQL.Add(Select * from ryb);
Query1.sql.add(where 姓名 like :xm and 工资 > :gz);
Query1.ParamByName(xm).asstring:=%+Edit1.text+%;
If (Edit2.text<>’’)then
Query1.ParamByName(gz).value:=strtofloat(Edit2.text);
Query1.prepare;
Query1.open;
>
这样就完成了查询代码的编写,具体各条语句所引用的函数的含义大家可以参考Delphi的帮助文档,在此就不作赘述了。另外在编写查询程序时,涉及到一些关于数据库查询语言SQL的知识,在后面的文章中我们将有比较详细的介绍。
>此时再执行这个程序,就编程的具有查询功能的数据库程序。在Edit1和Edit2中输入相应的查询条件,然后点击Button1(确定),程序就执行相应的查询操作,查询到的结果将在DBGrid1中显示。
到此为止,我们就实现了使用Borland Delphi5操纵paradox数据表的程序示例,当然,这个程序是非常简单的,它实现的只是数据库操作的最基本功能。而且这个程序只是在单击环境下运行的,在设计的时候,我们还不需要考虑一些例如并发性的问题。现在比较成熟的是在客户机/服务器结构下和浏览器/服务器下对数据库进行操作,而且随着网络功能的加入,许多新的问题也带入进来,在后面我们将举这方面的例子,请大家静候佳音吧