用Delphi 开发数据库程序经历三则-Delphi-优质IT资源分享社区

admin
管理员
管理员
  • UID1
  • 粉丝29
  • 关注4
  • 发帖数581
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:267回复:0

  用Delphi 开发数据库程序经历三则

楼主#
更多 发布于:2016-06-19 12:19

 1.树立暂时表
数据输入是开发数据库程序的必定环节。在Client/Server构造中,客户端可能要输入一批数据后,再向服务器的后台数据库提交,这就需求在本地(客户端)树立暂时数据表来存储用户输入的数据,待提交后,清除本地表数据。这种办法的好处是:提高输入功率,减小网络担负。
由于用户一次输入的数据量一般状况下较小(不会超越几百条记载),所以暂时表能够树立在内存中,这么处理速度较快。
办法1:运用查询控件(TQuery)
第1步:在窗体上放上查询控件(TQuery),设置好所连接的数据表。
第2步:使TQuery. CachedUpdates=True;
TQuery. RequestLive=True
第3步:在原有的SQL句子后参加一条Where子句子,请求参加这条Where子句子后SQL查询成果为空。
例如:
SELECT Biolife.″Species No″, Category, Common_Name, Biolife.″Species Name″,
Biolife.″Length (cm)″, Length_In, Notes, Graphic
FROM ″biolife.db″ Biolife
where Biolife.Category=′A′ and Biolife.Category=′B′
这么暂时表就树立完结了。
办法2:运用代码创立暂时表
代码如下:
function CreateTableInMemory(const AFieldDefs:TFieldDefs):TDataSet;
var
TempTable:TClientDataSet;
begin
TempTable:=nil;
Result:=nil;
if [email protected];[email protected];nil then
begin
try
TempTable:=TClientDataSet.Create(Application);
TempTable.FieldDefs.Assign(AFieldDefs);
TempTable.CreateDataSet;
Result:=(TempTable as TDataSet);
Except
if [email protected];[email protected];nil then
TempTable.Free;
Result:=nil;
raise;
end
end
end;
在程序中按如下办法运用:
procedure TForm1.Button1Click(Sender: TObject);
var
ADataSet:TDataSet;
begin
ADataSet:=TDataSet.Create(Self);
with ADataSet.FieldDefs do
begin
Add(′Name′,ftString,30,False);
Add(′ ue′,ftInteger,0,False);
end;
with DataSource1 do
begin
DataSet:=CreateTableInMemory(ADataSet.FieldDefs);
DataSet.Open;
end;
ADataSet.Free;
end;
暂时表创立完结。
办法1运用简略,但由于运用查询控件,清空数据时需求查询服务器后台数据库,所以速度稍慢,并且不适用于暂时表中各个字段由数个数据表的字段凑集而成的状况。办法2适用范围广、速度快,但需求编写代码。(代码中TFieldDefs的运用办法非常简略,见Delphi的联机帮助)。
2.装备数据引擎(BDE、SQL Link)
有关数据库程序分发时,需求带着数据引擎(BDE、SQL
Link),并且在客户端装置完程序后还需求装备数据引擎,如用户名(username)、密码(Password)等等。假如手艺装备的话,工作量比较大(依据客户机数量而定)。而InstallShield
For Delphi又如同没有这方面的选项,本来InstallShield For
Delphi能够做到,在生成装置程序的目录里有一个*.iwz的文本文件,只要在[IDAPI Alias]片段中手艺参加即可。 例如:
[IDAPI Alias]
usesname=SYSDBA
password=masterkey
装置程序后数据引擎主动装备结束。
3.在InterBase数据库中运用函数
程序员可能在用InterBase作为后台数据库时,会为其供给的函数过少而感到不方便(只要四个),无法方便地编写出杂乱的存储进程。InterBase本身无法编写函数,但它能够运用外部函数(调用DLL中的函数)。下例中阐明如安在InterBase
中声明SUBSTR函数。
DECLARE EXTERNAL FUNCTION SUBSTR
CSTRING(80), SMALLINT, SMALLINT
RETURNS CSTRING(80)
ENTRY_POINT ″IB_UDF_substr″ MODULE_NAME ″ib_udf″
其间:MODULE_NAME为DLL的名称,ENTRY_POINT为函数名。
声明后便能够运用,例如:
select SUBSTR(country)
from country
本例运用的是Delphi装置时自带的IBLocal数据库。用户也能够自个编写函数来扩充InterBase。









[font=Tahoma  ]
优质IT资源分享社区为你提供此文。
本站有大量优质Delphi教程视频,资料等资源,包含Delphi基础教程,高级进阶教程等等,教程视频资源涵盖传智播客,极客学院,达内,北大青鸟,猎豹网校等等IT职业培训机构的培训教学视频,价值巨大。欢迎点击下方链接查看。
Delphi教程视频
优质IT资源分享社区(www.itziyuan.top)
一个免费,自由,开放,共享,平等,互助的优质IT资源分享网站。
专注免费分享各大IT培训机构最新培训教学视频,为你的IT学习助力!

!!!回帖受限制请看点击这里!!!
!!!资源失效请在此版块发帖说明!!!

[PS:按 CTRL+D收藏本站网址~]

——“优质IT资源分享社区”管理员专用签名~

本版相似帖子

游客