做数据库时,常常使用内存表->临时使用的表,
一般数据集组件都要求连接到哪个数据库,连接到哪个表,但是使用内存表时,
我们常常希望数据集组件不要去连接任何数据表,
①在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