时间: 2021-07-31 作者:daque
数据输出是开拓数据库步调的必定步骤。在client/server构造中,存户端大概要输出一批数据后,再向效劳器的后盾数据库提交,这就须要在当地(存户端)创造偶尔数据表来保存用户输出的数据,待提交后,废除当地数据表。这种本领的长处是:普及输出功效,减小搜集承担。 因为用户一次输出的数据量普遍情景下较小(不会胜过几百条记载),以是偶尔表不妨创造在外存中,如许处置速率较快。临时表创建犹如下两种本领: 1.运用查问控件创造偶尔表 第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实用范畴广、速率快,但须要编写代码。