//////////////////////////////////////////////
ClientDataSet1.FieldDefs.Clear;
ClientDataSet1.FieldDefs.Add('doc_id', ftString,20);
ClientDataSet1.FieldDefs.Add('doc_name', ftString, 20);
ClientDataSet1.CreateDataSet; //创建虚拟表
ClientDataSet1.Open;
ClientDataSet1.Append;
ClientDataSet1.FieldByName('doc_name').AsString := 'aa';
ClientDataSet1.FieldByName('doc_id').AsString:= '11';
ClientDataSet1.Post;
ClientDataSet1.AppendRecord(['22','bb']);
DataSource1.DataSet := ClientDataSet1;
cx_test.DataController.DataSource := DataSource1;
////////////////////////////////////////////////
function Tfrm_doc_sum.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.btn1Click(Sender: TObject);
var
ADataSet:TDataSet;
begin
ADataSet:=TDataSet.Create(Self);
with ADataSet.FieldDefs do
begin
Add('item',ftString,40,False);
Add('is_nh',ftString,10,False);
Add('dosage',ftString,10,False);
Add('item_num',ftString,10,False);
Add('item_id',ftString,20,False);
Add('price',ftString,20,False);
Add('spec',ftString,20,False);
Add('unit',ftString,10,False);
Add('times',ftString,10,False);
Add('days',ftString,10,False);
end;
{
with DataSource1 do
begin
DataSet:=CreateTableInMemory(ADataSet.FieldDefs);
DataSet.Open;
DataSet.Append;
DataSet.FieldByName('item').AsString:='Woody';
DataSet.FieldByName('item_id').AsInteger:=9527;
DataSet.FieldByName('dosage').AsString:='Woody';
DataSet.FieldByName('item_num').AsInteger:=9527;
DataSet.FieldByName('price').AsString:='Woody';
DataSet.FieldByName('spec').AsInteger:=9527;
DataSet.FieldByName('unit').AsString:='Woody';
DataSet.FieldByName('times').AsInteger:=9527;
DataSet.FieldByName('days').AsString:='Woody';
DataSet.FieldByName('is_nh').AsInteger:=9527;
DataSet.Post;
end;
}
------清空内存表
1.clientdataset.EmptyDataSet;