Ver Mensaje Individual
  #2  
Antiguo 29-05-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

No sé de ningún metodo que poseea el TClientDataSet para realizar esa acción, pero podes agregársela sin mucha dificultad:
Código Delphi [-]
unit CDSExt;

interface

uses Variants, DBClient;

type
  TClientDataSet = class( DBClient.TClientDataSet )
  private
    FAuxFields: Variant;
  public
    procedure ReadRecord;
    procedure WriteRecord( const atLast: Boolean = False );
  end;

implementation

{ TClientDataSet }

procedure TClientDataSet.ReadRecord;
var
  i: Integer;
begin
  FAuxFields := VarArrayCreate( [0, FieldCount-1], varVariant );
  for i := 0 to FieldCount-1 do
    FAuxFields[i] := Fields[i].Value;
end;

procedure TClientDataSet.WriteRecord( const atLast: Boolean = False );
var
  i: Integer;
begin
  if not VarIsEmpty( FAuxFields ) then
  begin
    if atLast then
      Append
    else
      Insert;
    for i := 0 to FieldCount-1 do
      Fields[i].Value := FAuxFields[i];
  end;
end;

end.

Solo tenes que recordar agregar la unidad CDSExt (o como la llames) en último lugar al uses de la sección interface donde la vayas a usar, vg.:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, DBClient, ...,  CDSExt;

type
  TForm1 = class( TForm )
    ...
    DataSetProvider1: TDataSetProvider;
    ClientDataSet1: TClientDataSet; 
    DataSource1: TDataSource;
  ...

implementation

// Ejemplos de llamada:

procedure TForm1.Button1Click( Sender: TObject );
begin
  ClientDataSet1.ReadRecord;
end;


procedure TForm1.Button2Click( Sender: TObject );
begin
  ClientDataSet1.WriteRecord( True ); // o :  ClientDataSet1.WriteRecord;
end;
...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita