无库连接-(内存表)


做数据库时,常常使用内存表->临时使用的表,

一般数据集组件都要求连接到哪个数据库,连接到哪个表,但是使用内存表时,

我们常常希望数据集组件不要去连接任何数据表,

①在SQL2000中,有连接产生一个内存表的方法用如下语句

Select * Into #内存表 From 表 Where 1=2;

这样的方法是在内存中产生一个的数据库中表结构一样的内存表

②,还有另一个方法,就是利于TSimpleDataSet或TClientDataSet数据集组件

为什么,只有这二个数据集组件能够建立内存表呢?那是因为这二个组件都采用了DataSnap技术

在运行时会产生自已的内存Buffer,DBExpress本来就是一个离线的数据集组件组,所有数据都放

在客户端的内存中,所以这二个组件最合式做内存数据表

方法如下:

1,放一个TSimpeDataSet或TClientDataSet数据组件在From上

2,设置它们的FieldDefs属性(增加字段,指定字段名称,字段类型),或用动态的指定方式

TSimpleDataSet.Add('字段名',ft字段类型,字段大小,是否必填(False/True)默认为False);

procedure TForm1.Button1Click(Sender: TObject);
begin
   SimpleDataSet1.FieldDefs.Clear;
   SimpleDataSet1.FieldDefs.Add('字串',ftString,20,False);
   SimpleDataSet1.FieldDefs.Add('实型',ftInteger);//字段可为空
   SimpleDataSet1.FieldDefs.Add('必填实型',ftInteger,0,True);//字段可必填

   SimpleDataSet1.CreateDataSet;
end;


如果是实数字段,可以不填字段的大小,只要填写前二个叁数就行

注意:这里是调用SimpleDataSet.CreateDataSet方法,而不是Open,

Open->从后端数据库中读取数据

CreateDataSet->在数据集组件的Buffer中建立数据集

3,内存数据表建立后,手工调用SimpleDataSet.Close方法清除内存表中的数据,否则要等Form关闭,或

TSimeleDataSet,TClientDataSet实例释放时才会自动清掉,

---------------------------

DoubleCat












你可能感兴趣的:(内存)