用DELPHI设计数据库应用的几点体会
Delphi是一个不错的前端开发工具,能够快捷地产生界面良好的应用程序。在数据库应用设计方面,Delphi也具有强大的功能。开发一个较大的数据库应用往往只要很短的时间即可完成。在此笔者想谈谈在编程过程中积累的一点体会。
Delphi提供了用于数据访问和控制的可视控件,用这些控件可以构造数据库应用。Data
Access控件主要用于访问数据记录,如查询、插入、删除等操作,Data
Controls控件则主要用于表格的显示,当然 也可进行一些编辑。
Delphi的数据库应用通过Data Access控件与BDE连接,从而访问数据源。Data
Control s控件是些所谓Data_Aware控件,提供用户接口。由于BDE(Borland
Database Engi-neer)支持ODBC标准,所以可以访问多种数据源表格。
使用SQL时的一些问题
Delphi的数据控件基本支持标准SQL语言,但有些限制。在具体编程时可能会遇到一些麻烦。
1.Query控件的Open和ExecSQL方式的区别。Open方式可以打开所联系的数据表格,而Ex
ecSQL方式则只是运行SQL语句,并不将运行后的表格送往相连的Data-Controls控件。因此,
如果要用DBGrid等来显示要求的数据记录时,先用SELECT语句筛选出符合要求的元组,再用O
pen对Query控件进行操作即可。例如有如下的应用:
如果要在DBGridl中显示表格(表格名为WORKERS.DB),则可将Query1的SQL属性设为:SEL
ECT*FROM WORKERS,再在程序中加入语句:Query1.Open;即可。如要插入一个记录,则Query1
的SQL属性应为:
INSERT INTO WORKERS(No#,Name,Sex,Age,Depart) VALUES
(:No#,:Name,:Sex,Age,:Depart)
在程序中则应该加入下列语句:
Query1.Close;
Query1.ParamByName(‘No#').asintegar:=2717;
Query1.ParamByName(‘Name').asstring:=‘李四';
Query1.ParamByName(‘Sex').asstring=‘男';
Query1.ParamByName(‘Age').asinteger:=40;
Query1.ParamByName(‘Depart').asstring:=‘品质管理’;
Query1.ExecSQL;
注意,此处如果不用ExecSQL而用Open则会出错。
2.若要在SQL语句中使用程序中的变量,只能在SQL中先用冒号加字段名来代替,然后在程序中把变量的值赋给字段。上面的例子便是这样完成的。再如,若用户输入一个工号存于Nu
mber变量中,要查询对应的记录时SQL语句应如下:
SELECT*FROM WORKERS WHERE No#=:No#
再在程序中加入如下语句:
Query1.Close;
Query1.ParamByName(‘No#').asinteger:=Number;
Query1.Open;
使用中文时的注意事项
1.要在Delphi编制的数据库应用程序中使用中文,必须对BDE
Configuration进行正确设置,主要是对驱动语言的选择。对Delphi
1.0而言,可在BDE Configuration Utility的Syst em页中将LANGDRIVER设置为dBASE
CHS CP936,对Delphi 2.0,则可将System页中的LANG-DRI VER设置为Sybase SQL
Dic850。设置好后,Delphi中的数据访问控件和数据控制控件就可以使用中文了。值得注意的是,如果表格是在不支持中文的BDE设置中产生的,即使在使用时BD
E已经设置为支持中文也不能用中文,此时可用DATABASE DESKTOP来修改表格的属性。将Tab
le Property中的Table Langue改为支持中文的驱动语言即可。 [1] [2] 下一页
|