当前位置:首页 > 网络编程 > 软件语言 > DELPHI > 用Delphi开发数据库程序经验三则

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

点击次数:65 次 发布日期:2008-11-09 08:46:23 作者:源代码网
源代码网推荐
广告载入中
1.建立临时表

数据输入是开发数据库程序的必然环节。在Client/Server结构中,客户端可能要输入一批数据后,再向服务器的后台数据库提交,这就需要在本地(客户端)建立临时数据表来存储用户输入的数据,待提交后,清除本地表数据。这种方法的好处是:提高输入效率,减小网络负担。

由于用户一次输入的数据量一般情况下较小(不会超过几百条记录),所以临时表可以建立在内存中,这样处理速度较快。

方法1:使用查询控件(TQuery)

第1步:在窗体上放上查询控件(TQuery),设置好所连接的数据表。 软件开发网 www.mscto.com

第2步:使TQuery. CachedUpdates=True; 软件开发网 www.mscto.com

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:使用代码创建临时表 软件开发网 www.mscto.com

代码如下:

  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;

源代码网推荐

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华