数据表结构设定完成后,单击【SaveAs】按钮,弹出【SaveTableAs】对话框,如图12-19所示。
(5)在【文件名】编辑框中输入创建的表名,然后单击【保存】按钮,数据表创建完毕。
对已经存在的数据表,用户也可以进行修改,在图12-17所示的【CreateParadox7Table(untitled)】对话框中,单击【Borrow】按钮,弹出【SelectBorrowTable】对话框,如图12-20所示,在列表框中选择要修改的数据表,然后单击【打开】按钮,显示如图12-18所示对话框,用户可以对这个已存在的数据表进行修改。
2.使用DatabaseDesktop向数据表中输入数据
使用DatabaseDesktop向数据表中输入数据的步骤如下。
(1)按如上介绍的方法打开如图12-15所示的【DatabaseDesktop】窗口。
(2)执行【File】→【Open】→【Table】菜单命令,弹出【OpenTable】对话框,如图12-21所示。
(3)在列表框中选择要打开的数据表,然后单击【打开】按钮,【DatabaseDesktop】窗口中显示打开的数据表,如图12-22所示,显然这是一个没有数据记录的空数据表。
(4)执行窗口中的【Table】→【EditData】菜单命令,或单击工具栏【EditData】工具按钮,打开的数据表进入编辑状态,如图12-23所示。
(5)输入第一个记录的姓名字段,然后按回车键,高亮条移到第二个字段处,按同样方法输入第一个记录各个字段。完成后按回车键,高亮条移到第二个记录姓名字段处,按如上方法输入第二个记录各字段,…,直到数据表数据输入完毕,输入了部分数据的数据表如图12-24所示。
(6)单击数据表右上角“关闭”按钮,或执行窗口【File】→【Close】菜单命令,关闭数据表。若不在DatabaseDesktop中进行其他操作,执行【File】→【Exit】菜单命令,或单击窗口右上角的“关闭”按钮,退出【DatabaseDesktop】。
Delphi的数据库管理工具DatabaseDesktop还具有查询数据表数据等功能。
12.3.2配置ODBC
ODBC是Microsoft公司制定的一个数据库前端存取标准界面,用于开发网络环境下客户机/服务器模式数据库应用系统,可以让客户端数据库应用程序访问不同的数据库,只要这种数据库具有ODBC接口,只要ODBC安装了这种数据库的驱动程序。
通过ODBC访问网络数据库,是当前数据库应用程序的常用模式。对这种模式的数据库应用程序,需要在创建数据库之后配置ODBC。
配置ODBC是在计算机操作系统的环境中进行的,不同的操作系统,具体的配置方法基本相同,这里以Windows2000Server操作系统为例,简单介绍ODBC的配置方法。
(1)执行【开始】→【程序】→【管理工具】→【数据源(ODBC)】系统菜单命令,打开【ODBC数据源管理器】对话框,如图12-25所示。
(2)通常若要访问的数据库在本机上,则选择【系统DSN】选项卡;若要访问的数据库在远程数据库服务器上,则选择【用户DSN】选项卡,这里以【用户DSN】选项卡为例。
(3)初次配置ODBC,单击【添加】按钮,弹出【创建新数据源】对话框,如图12-26所示。
(4)在【选择您想为其安装数据源的驱动程序(S)】列表框中选择用户使用的数据库管理系统,如SQLServer,然后单击【完成】按钮,关闭该对话框,弹出【建立新的数据源到SQLServer】对话框(1),如图12-27所示。
(5)在【名称(M)】编辑框中输入用户数据源的名称,可以使用用户数据库的名称,也可以另外命名数据源的名称;在【服务器(S)】组合框的编辑框中直接输入或者从其下拉列表中选择数据库服务器,可以是服务器的IP地址,也可以是服务器的机器名称,然后单击【下一步】按钮,对话框如图12-28所示。
(6)对于“SQLServer应该如何验证登录ID的真伪?”,通常选择【使用用户输入登录ID和密码SQLServer验证(S)】单选按钮,在【登录ID(L)】编辑框中可以取默认的登录ID:Administrator,也可以另行输入登录ID,通常用sa;在【密码(P)】编辑框中输入登录密码,登录密码由用户安装数据库管理系统时决定;通常客户端配置取默认配置即可,然后单击【下一步】按钮,对话框如图12-29所示。
(7)选择【更改默认的数据库为(D)】复选框,在组合框中选择用户数据库的名称,其他设置取默认设置,然后单击【下一步】按钮,对话框如图12-30所示。
(8)通常对所有设置取默认设置,直接单击【完成】按钮,弹出【ODBCMicrosoftSQLServer安装】对话框,对话框列出了以上的设置情况,如图12-31所示,用户可以检查是否正确。
(9)为了检测ODBC数据源是否连接成功,单击【测试数据源】按钮,弹出【SQLServerODBC数据源测试】对话框,给出测试结果,若连接成功,应显示“测试成功”字样,如图12-32所示。
(10)单击【确定】按钮,关闭对话框,显示返回图12-31所示的【ODBCMicrosoftSQLServer安装】对话框。
(11)单击【确定】按钮,关闭对话框,显示返回图12-25所示的【ODBC数据源管理器】对话框,若测试成功,单击【确定】按钮,退出ODBC配置;若不成功,单击【配置】
按钮,重新进行配置,直到成功为止。
12.3.3设置BDE
如前所述,Delphi是通过BDE与数据库链接的,要实现Delphi应用程序对数据库的访问,必须正确设置BDE参数。
设置BDE是通过BDEAdministrator(BDE管理器)完成的,设置BDE的步骤如下。
(1)执行【开始】→【程序】→【BorlandDelphi6】→【BDEAdministrator】菜单命令,启动BDE管理器,如图12-33所示。
BDE管理器窗口左边有两个选项卡,【Databases】选项卡列出了默认的BDE驱动的数据库或数据库别名,选择其中一个数据库或数据库别名,窗口的右边的【Definition】选项卡显示该数据库的有关参数;【Configuration】选项卡用于配置各种数据库的驱动程序或配置BDE本身参数。
(2)若【Databases】选项卡列出的数据库中有用户使用数据库,则可以对有关参数加以修改直接使用;若没有,则需新建。右击【Databases】选项卡中的【Databases】图标、执行快捷菜单中的【New】菜单命令,或执行窗口菜单栏中的【Object】→【New】菜单命令,弹出【NewDatabaseAlias】对话框,如图12-34所示。
(3)在下拉列表中选择用户需要的数据库类型,如SQLServer,然后单击【OK】按钮,选择的数据库以“ODBC1”的别名显示在【BDEAdministrator】窗口的【Databases】选项卡中,用户可以将该别名改为自己需要的别名。
(4)选择新建的数据库别名,窗口右边【Definition】选项卡显示该数据库的参数列表,用户在选项卡中设置需要的参数,其内容随数据库的不同而不同。如对SQLServer来说,DATABASENAME和ODBCDSN应设置为用户数据库的名称,SQLQRYMODE应设置为SERVER,USERNAME应设置为ODBC中设置的登录ID,如前设置的sa,然后单击工具栏的【Apply】工具按钮,BDE设置完毕。
(5)双击设置参数的数据库别名,弹出【DatabaseLogin】对话框,如图12-35所示。
对话框的【UserName】编辑框中,显示确定的用户登录名,在【Password】编辑框中输入用户登录口令,然后单击【OK】按钮,若窗口右边【Definition】选项卡中的参数名称变成粗体字,则说明BDE设置正确。
12.3.4设计应用程序界面
设计应用程序界面,就是根据应用程序的功能和操作要求,设置窗体的属性,在窗体中放置需要的组件并设置它们的属性。
设计数据库应用程序界面和设计一般应用程序界面,方法没有什么不同,只是要熟悉Delphi提供的丰富的数据库组件的功能和使用方法,合理选择和正确使用这些组件,从而设计出外形美观、使用方便、功能满足要求的数据库应用程序界面。
除了手工设计,Delphi还提供了一个数据库应用程序界面设计工具--FormWizard(数据库窗体向导)。使用它,可以方便、快捷地设计符合用户要求的数据库应用程序界面。
12.3.5编写应用程序代码
编写应用程序代码,就是根据应用程序的功能要求,选择对象的事件,编写事件处理代码。
编写数据库应用程序事件处理代码同一般应用程序没有什么不同,需要注意的是:要掌握Delphi数据组件一些重要事件的使用方法。
12.3.6运行、调试应用程序
应用程序界面和代码设计完成后,就可以运行应用程序了。如果运行中出现问题,还要进行调试。这一步同其他的应用程序是相同的。
12.4数据库应用程序设计举例
本节将通过一个图书管理系统的数据库应用程序例子,具体讲述Delphi数据库应用程序的设计方法。
例12-1设计一个简单的图书管理系统数据库应用程序。
这里使用SQLServer数据库实现图书管理,在SQLServer中建立名为TSGL(图书管理)的数据库。
通常图书管理应有如下功能。
数据维护:包括图书登记、读者登记。
图书借阅:包括出借图书、归还图书。
查询:包括图书查询、读者查询、借阅查询。
根据功能要求,需要在TSGL数据库中建立3个数据表:TSBM(图书编目)表、DZMC(读者名册)表和TSJY(图书借阅)表。这3个表的结构分别如下。
TSBM:
SH:图书编号,char(字符串)类型,8字节长
SM:图书名称,varchar(可变长字符串)类型,50
LB:图书类别,varchar类型,16
ZZ:作者姓名,varchar类型,20
CBS:出版社,varchar类型,20
CBRQ:出版日期,datetime(日期时间)类型,固定长度DJ:定价,图书定价,menoy(货币)类型,固定长度BZ:备注,varchar,50
DZMC:
JSZH:借书证号,char类型,6
XM:读者姓名,varchar类型,8
XB:读者性别,char类型,2
ZY:读者职业,varchar类型,8
DW:读者单位,varchar类型,12
BZ:备注,varchar,50
TSJY:
SH:图书编号,char类型,8
JCBZ:图书借出标志,char类型,4
JSZH:借书证号,char类型,6
JCRQ:借出日期,datetime类型
在这3个数据表中,TSBM和TSJY表通过JSZH字段相关联,DZMC和TSJY表通过SH字段相关联。这样,TSJY表就可以减少一些冗余的字段,如SM、XM等。
创建数据库、数据表及向数据表输入必要的数据后,按如上介绍的方法,配置ODBC和BDE。
12.4.1应用程序主界面
首先按照如上所述图书管理的功能要求,设计应用程序主界面。
主界面中,可以用菜单控制,也可以用按钮控制,这里用菜单控制。设计好的程序主界面如图12-36所示。
根据该管理系统的功能要求,窗体中菜单栏各主菜单项的级联菜单如下所示:
查询:图书借阅:数据维护:
主窗体Name属性值为MainForm,【图书信息查询】菜单项Name属性值为Ntscx,【读者信息查询】菜单项Name属性值为Ndzcx,【借出图书查询】菜单项Name属性值为Njccx,【出借图书】菜单项Name属性值为Ncjts,【归还图书】菜单项Name属性值为Nghts,【图书登记】菜单项Name属性值为Ntsdj,【读者登记】菜单项Name属性值为Ndzdj,【退出系统】菜单项Name属性值为Ntcxt。
12.4.2各功能模块程序界面及实现代码
1.图书信息查询
1)程序界面
【图书信息查询】窗体如图12-37所示。
窗体及组件的属性设置如表12-2所示。
为使DBGrid标题用汉字显示,还应双击DBGrid组件,用前面介绍的方法,利用弹出的【EditorDBGridtscx.Columns】对话框编辑其Title属性的Caption等子属性。
2)程序代码
(1)在Unit1单元文件的implementation段中加入usesUnit2;(2)根据功能要求,单击程序主界面【图书信息查询】菜单命令,打开如图12-37所示的【图书信息查询】窗口,因此Unit1单元文件的TMainForm.NtscxClick(Sender:TObject)事件处理代码如下:
(3)查询功能的实现
从【查询关键字选择】组合框中选择查询的关键字,在【查询关键字设置】编辑框中输入相应的关键字参数,然后单击【查询】按钮,则数据网格中列出按选定关键字查询的结果。
【查询】按钮的事件处理代码如下:
(4)返回功能的实现
单击【返回】按钮,关闭【图书信息查询】窗口,显示程序主窗口。【返回】按钮的事件处理代码如下:
2.读者信息查询
用同【图书信息查询】类似的方法,设计【读者信息查询】功能模块。
1)程序界面
【读者信息查询】窗体如图12-38所示。
窗体及组件的属性设置如表12-3所示。
2)程序代码
(1)在Unit1单元文件的implementation段中加入usesUnit3;(2)根据功能要求,鼠标单击程序主界面【读者信息查询】菜单命令,打开图12-38所示的【读者信息查询】窗口,因此Unit1单元文件的TMainForm.NdzcxClick(Sender:TObject)事件处理代码如下:
(3)查询功能的实现
从【查询关键字选择】组合框中选择查询的关键字,在【查询关键字设置】编辑框中输入相应的关键字参数,然后单击【查询】按钮,则数据网格中列出按选定关键字查询的结果。
【查询】按钮的事件处理代码如下:
(4)返回功能的实现
用鼠标单击【返回】按钮,关闭【读者信息查询】窗口,显示程序主窗口。【返回】按钮的事件处理代码如下:
3.借出图书查询
同样,可以设计【借出图书查询】功能模块。
1)程序界面
【借出图书查询】窗体如图12-39所示。