function CreateTableInMemory(const AFieldDefs:TFieldDefs):TDataSet;
var 
  TempTable:TClientDataSet;//定义TClientDataSet变量
begin
  TempTable:=nil;//付TempTable为空
  Result:=nil;//给出函数的返回值,先为空
 if AFieldDefs<>nil then//判断AFieldDefs是否为空
 begin
   try
   TempTable:=TClientDataSet.Create(Application);//创建TempTable控件
   TempTable.FieldDefs.Assign(AFieldDefs);//把AFieldDefs的内容付给     TempTable.FieldDefs
   TempTable.CreateDataSet;//用TempTable创建表
   Result:=(TempTable as TDataSet);//把TempTable as TDataSet付给函数的返回值
   Except//处理异常
   if TempTable<>nil then 
TempTable.Free;//如果TempTable为空则释放TempTable  Result:=nil;//为返回值付值为空
   raise;
    end
end
 end;  

解决方案 »

  1.   

      function CreateTableInMemory(const AFieldDefs:TFieldDefs):TDataSet;//建立内存临时表函数,参数类型:字段定义
      var 
    TempTable:TClientDataSet;//TempTable:客户端数据集
      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;
      

  2.   

    const AFieldDefs:TFieldDefsTFieldDefsTClientDataSet;TDataSet都是什么呀??
      

  3.   

    const AFieldDefs:TFieldDefsTFieldDefs//可能是包含字段定义的一个类型,会用就行了TClientDataSet;//数据集空件,D5在Midas...页,D6在Data Access页TDataSet//数据集
      

  4.   

    dfgdfgdfgdfgdf  :你的代码哪里来的,能用吗?