在D6中clientdataset控件能不能动态添加字段和记录???????????????
就是没有设置任何数据源的情况下,例如没有设置remoteserver和providerName的情况下能不能动态添加字段后,然后动态添加记录如果可以请给详细代码

解决方案 »

  1.   

    function TfrmNewItem.CreateTableInMemory(const AFieldDefs: TFieldDefs): TDataSet;
    var tmpTable: TClientDataSet;
    begin
      tmpTable := nil;
      Result := nil;
      if AFieldDefs <> nil then
      begin
        try
          tmpTable := TClientDataSet.Create(nil);
          tmpTable.FieldDefs.Assign(AFieldDefs);
          tmpTable.CreateDataSet;
          Result := (tmpTable as TDataSet);
        except
          if tmpTable <> nil then FreeAndNil(tmpTable);
          Result := nil;
          Raise;
        end;
      end;
    end;
      

  2.   

    ADataSet := TDataSet.Create(nil);
      with ADataSet.FieldDefs do
      begin
        Add('aaa', ftString, 30);
        Add('bbb', ftString, 100);
        Add('ccc', ftString, 20);
        Add('ddd', ftString, 100);
        Add('eee', ftString, 100);
      end;
      DataSource1.DataSet := CreateTableInMemory(ADataSet.FieldDefs);
      

  3.   

    ftString是什么类型??? 整型,长整,single,double,日期,binary等类型如何定义??
    thks!