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
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
procedure TForm1.Button1Click( Sender: TObject );
begin
ClientDataSet1.ReadRecord;
end;
procedure TForm1.Button2Click( Sender: TObject );
begin
ClientDataSet1.WriteRecord( True ); end;
...
Saludos