临时表创建
点击次数:78 次 发布日期:2008-11-09 08:40:54 作者:源代码网
|
源代码网推荐 源代码网推荐 由于用户一次输入的数据量一般情况下较小(不会超过几百条记录),所以临时表可以建立在内存中,这样处理速度较快。临时表创建有如下两种方法: 源代码网推荐 源代码网推荐 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适用范围广、速度快,但需要编写代码。 源代码网推荐 源代码网供稿. |
