Hola a todos,
estoy enfrascado en un problemilla y me gustaría saber qué opinais.
Tengo un TClientDataset al que le creo en runtime los campos que necesito. Hasta ahí bien, los creo, doy las altas de registros necesarios, preparo la información, y me funciona perfectamente. Como el Tclientdataset va a su bola, es decir, no extrae los datos de ninguna bbdd, ejecuto CDS.CreateDataset una vez creados los campos.
Sin embargo, cuando lanzo el proceso por segunda vez, cambiando los campos, me da un error. Concretamente cuand ejecuto CDS.CreateDataset. Previamente, he borrado los campos que había creado anteriormente.
También he intentado ejecutar el CreateDataset sólo la primera vez, pero también me da el error.
Sabría alguien decirme qué demonios se me está escapando ?
Gracias y un saludo
Así borro los campos:
Código Delphi
[-]for n:= CDSResultado.Fields.Count-1 downto 0 do
CdSResultado.Fields[0].Free;
Así creo los campos:
Código Delphi
[-]function crearColumna(CDS:TClientDataset; Campo: string ):boolean;
var F: TStringField; NombreCampo:string;
begin
F:= TStringField.Create(CDS);
F.FieldName:= Campo;
NombreCampo:= AnsiReplaceStr( Campo,' ', '_');
NombreCampo:= trim(AnsiReplaceStr( NombreCampo,'-', '_'));
F.Name:= CDS.Name+ NombreCampo;
F.DataSet:= CDS;
F.Size := 100;
F.DisplayLabel:= Campo;
F.DisplayWidth:= 10;
end;