![]() |
|
||||||||||||||
| | 网站首页 | 技术教程 | 网站开发 | 程序下载 | 言情小说 | 法律咨询 | Firefox | 两性故事 | 健康知识 | 网络游戏 | 免费论文 | | ||
|
||
|
|||||
| 用Delphi 开发数据库程序经验三则 | |||||
|
数据输入是开发数据库程序的必然环节。在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 AFieldDefs<>nil then begin try TempTable:=TClientDataSet.Create(Application); TempTable.FieldDefs.Assign(AFieldDefs); TempTable.CreateDataSet; Result:=(TempTable as TDataSet); Except if TempTable<>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(′Value′,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_NA |
|||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| DELPHI:利用INI文件实现界面… 巧用日期转换函数验证用户输… 在Delphi 7 中用Indy开发Soc… 在Delphi中用ADSI创建IIS的虚… 在DELPHI程序中拨号上网 在Delphi中侦测剪贴板的变化 Delphi实现远程屏幕抓取 改变VCL的行为--一个使用可视… 怎样用delphi制作一个IPhunt… TWebBrowserTWebBrowser与MS… |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 网站地图 | Baidu News | Google Map | | |||
|