📄 71.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>CTerm非常精华下载</title>
</head>
<body bgcolor="#FFFFFF">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="577">
<tr><td width="32%" rowspan="3" height="123"><img src="DDl_back.jpg" width="300" height="129" alt="DDl_back.jpg"></td><td width="30%" background="DDl_back2.jpg" height="35"><p align="center"><a href="http://bbs.tsinghua.edu.cn"><font face="黑体"><big><big>水木清华★</big></big></font></a></td></tr>
<tr>
<td width="68%" background="DDl_back2.jpg" height="44"><big><big><font face="黑体"><p align="center"> Delphi编程 (BM: strayli FlyingBoy) </font></big></big></td></tr>
<tr>
<td width="68%" height="44" bgcolor="#000000"><font face="黑体"><big><big><p align="center"></big></big><a href="http://cterm.163.net"><img src="banner.gif" width="400" height="60" alt="banner.gif"border="0"></a></font></td>
</tr>
<tr><td width="100%" colspan="2" height="454"> <p align="center">[<a href="index.htm">回到开始</a>][<a href="14.htm">上一层</a>][<a href="72.htm">下一篇</a>]
<hr><p align="left"><small>发信人: pitts (痛并快乐着), 信区: Delphi <br>
标 题: 用Delphi设计数据库应用的几点体会 <br>
发信站: BBS 水木清华站 (Tue Oct 13 11:08:55 1998) WWW-POST <br>
<br>
用Delphi设计数据库应用的几点体会 <br>
<br>
深圳深大电话公司沙头角机楼(518081) 赵福云 <br>
<br>
Delphi是一个不错的前端开发工具,能够快捷地产生界面良好 <br>
的应用程序。在数据库应 用设计方面,Delphi也具有强大的功 <br>
能。开发一个较大的数据库应用往往只要很短的时间即 可完 <br>
成。在此笔者想谈谈在编程过程中积累的一点体会。 <br>
<br>
<br>
Delphi提供了用于数据访问和控制的可视控件,用这些控件可 <br>
以构造数据库应用。Data Access控件主要用于访问数据记录, <br>
如查询、插入、删除等操作,Data Controls控件则主要 用于 <br>
表格的显示,当然 也可进行一些编辑。 <br>
<br>
<br>
Delphi的数据库应用通过Data Access控件与BDE连接,从而 <br>
访问数据源。Data Control s控件是些所谓Data_Aware控件, <br>
提供用户接口。由于BDE(Borland Database Engi-neer)支 持 <br>
ODBC标准,所以可以访问多种数据源表格。 <br>
<br>
<br>
<br>
<br>
使用SQL时的一些问题 <br>
<br>
<br>
<br>
<br>
Delphi的数据控件基本支持标准SQL语言,但有些限制。在具 <br>
体编程时可能会遇到一些麻 烦。 <br>
<br>
<图片> <br>
<br>
<br>
1.Query控件的Open和ExecSQL方式的区别。Open方式可以 <br>
打开所联系的数据表格,而Ex ecSQL方式则只是运行SQL语句, <br>
并不将运行后的表格送往相连的Data-Controls控件。因此, 如 <br>
果要用DBGrid等来显示要求的数据记录时,先用SELECT语句 <br>
筛选出符合要求的元组,再用O pen对Query控件进行操作即 <br>
可。例如有如下的应用: <br>
可。例如有如下的应用: <br>
<br>
<br>
如果要在DBGridl中显示表格(表格名为WORKERS.DB),则可将 <br>
Query1的SQL属性设为:SEL ECT*FROM WORKERS,再在程序中加 <br>
入语句:Query1.Open;即可。如要插入一个记录,则Query1 的 <br>
SQL属性应为: <br>
<br>
<br>
INSERT INTO WORKERS(No#,Name,Sex,Age,Depart) VALUES <br>
<br>
<br>
(:No#,:Name,:Sex,Age,:Depart) <br>
<br>
<br>
在程序中则应该加入下列语句: <br>
<br>
<br>
Query1.Close; <br>
<br>
<br>
Query1.ParamByName(‘No#').asintegar:=2717; <br>
<br>
<br>
<br>
Query1.ParamByName(‘Name').asstring:=‘李四'; <br>
<br>
<br>
Query1.ParamByName(‘Sex').asstring=‘男'; <br>
<br>
<br>
Query1.ParamByName(‘Age').asinteger:=40; <br>
<br>
<br>
Query1.ParamByName(‘Depart').asstring:=‘品质管理’; <br>
<br>
<br>
Query1.ExecSQL; <br>
<br>
<br>
注意,此处如果不用ExecSQL而用Open则会出错。 <br>
<br>
<br>
2.若要在SQL语句中使用程序中的变量,只能在SQL中先用冒 <br>
号加字段名来代替,然后在程 序中把变量的值赋给字段。上面 <br>
的例子便是这样完成的。再如,若用户输入一个工号存于Nu mber <br>
变量中,要查询对应的记录时SQL语句应如下: <br>
<br>
<br>
SELECT*FROM WORKERS WHERE No#=:No# <br>
<br>
<br>
再在程序中加入如下语句: <br>
<br>
<br>
Query1.Close; <br>
<br>
<br>
Query1.ParamByName(‘No#').asinteger:=Number; <br>
<br>
<br>
Query1.Open; <br>
<br>
<br>
<br>
<br>
使用中文时的注意事项 <br>
<br>
<br>
<br>
<br>
<br>
1.要在Delphi编制的数据库应用程序中使用中文,必须对BDE <br>
Configuration进行正确设 置,主要是对驱动语言的选择。对 <br>
Delphi 1.0而言,可在BDE Configuration Utility的Syst em <br>
页中将LANGDRIVER设置为dBASE CHS CP936,对Delphi 2.0, <br>
则可将System页中的LANG-DRI VER设置为Sybase SQL Dic850。 <br>
设置好后,Delphi中的数据访问控件和数据控制控件就可以 使 <br>
用中文了。值得注意的是,如果表格是在不支持中文的BDE设 <br>
置中产生的,即使在使用时BD E已经设置为支持中文也不能用 <br>
中文,此时可用DATABASE DESKTOP来修改表格的属性。将Tab le <br>
Property中的Table Langue改为支持中文的驱动语言即可。 <br>
<br>
<br>
2.中文可以用作字段名,并能正确显示,但由于PASCAL语言要 <br>
求变量名为以英文字母为首 的字母数字串,所以汉字字符串不 <br>
能用作变量名。所以如果表格中有中文字段名,使用SQL时 要 <br>
十分小心,尤其是在对中文名的字段进行赋值或比较时。例如 <br>
下面几条SQL语句在使用时都 会出错: <br>
<br>
<br>
<br>
SELECT*FROM TEST WHERE姓名=:姓名 <br>
<br>
<br>
INSERT INTO TEST(姓名,Age,Salary)values(:姓 <br>
名,:Age,:Salary) <br>
<br>
<br>
<br>
<br>
注意版本之间的差异 <br>
<br>
<br>
<br>
<br>
Delphi 1.0和Delphi2.0在对数据库的处理上有些差别,使用 <br>
过程中要加以注意。例如D elphi 1.0的表格字段数目不能太 <br>
多,超过10个字段时将无法用INSERT语句插入记录,而Delp hi <br>
2.0则不存在这种限制。又如,对于有关键字的PARADOX表格进 <br>
行插入记录时,Delphi 1.0 将覆盖原有的关键字相同的记录, <br>
而Delphi 2.0则不允许插入关键字已存在的记录,如果执行 了 <br>
这种操作,数据库的使用将会变得不正常。 <br>
<br>
<br>
-- <br>
<br>
怎一个惨字了得 <br>
<br>
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.7.26] <br>
</small><hr>
<p align="center">[<a href="index.htm">回到开始</a>][<a href="14.htm">上一层</a>][<a href="72.htm">下一篇</a>]
<p align="center"><a href="http://cterm.163.net">欢迎访问Cterm主页</a></p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -