DELPHI 中没有直接的方法实现你说的要求, 但是你可以自己创建一个临时表
然后在将数据添到临时表中,以后的操作就如同对TDataSet操作是一样的。
代码如下:
uses DB, DBClient
function CreateDataSet(const AFieldDefs:TFieldDefs) : TClientDataSet;
var
TempTable:TClientDataSet;
begin
TempTable := nil;
Result := nil;
if AFieldDefs <> nil then
begin
try
TempTable := TClientDataSet.Create(nil);
TempTable.FieldDefs.Assign(AFieldDefs);
TempTable.CreateDataSet;
Result := TempTable;
Except
if TempTable <> nil then
TempTable.Free;
Result:=nil;
raise;
end
end
end;
procedure TForm1.Button1OnClick(Sender: TObject);
var
aDataSet: TDataSet;
begin
aDataSet := TDataSet.Create(nil);
try
with aDataSet.FieldDefs do
begin
Add('你想要的字段名', 你想要字段类型, 字段数据长度);
:
:
end
DataSource1.DataSet := CreateDataSet(aDataSet);
finally
aDataSet.Free;
end;
end;
然后在用Query 或 Table 为 DataSource1.DataSet.Field 赋值