Ver Mensaje Individual
  #5  
Antiguo 25-01-2017
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Reputación: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Si me permites quisiera hacer los siguientes comentarios

{1}: Estas liberando el objeto CDSProcedimientos, esto es eliminar todos los campos persistentes que podría tener definido.
{2}: Estas creando un nuevo objeto CDSProcedimientos, sin ningún campo persistente
{3}: Estas creando un nuevo dataset vacío, para agregar registros a el, pero no haz definido los campos que contiene.
{4}: Debería ir el código que define los campos del dataset antes de llamar al Createdataset
Código Delphi [-]
...
  CDSProcedimientos.Free; {1}

  CDSProcedimientos := TClientDataSet.Create(Self); {2}
  CDSProcedimientos.OnCalcFields := CDSProcedimientosCalcFields;

...
    //if QCategorias.RecordCount = 0 then
    begin
      try
        CDSProcedimientos.Close;
        // CDSProcedimientos.ClearFields;
      {4}...
        CDSProcedimientos.CreateDataSet; {3}
      except
      end;

      // Abort;
    end;

...

Te adjunto un ejemplo de creación de un TClientDatset, obtenido desde TCustomClientDataSet.CreateDataSet

Código Delphi [-]
with CDS2 do
  begin
    with FieldDefs.AddFieldDef do
    begin
      DataType := ftInteger;
      Name := 'Field1';
    end;
    with FieldDefs.AddFieldDef do
    begin
      DataType := ftString;
      Size := 10;
      Name := 'Field2';
    end;
    with IndexDefs.AddIndexDef do
    begin
      Fields := 'Field1';
      Name := 'IntIndex';
    end;
    CreateDataSet;
  end;

Saludos cordiales
Responder Con Cita