Reproduciendo el error nuevamente hice lo siguiente:
Código Delphi
[-]
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, RxMemDS, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
RxMemoryData1: TRxMemoryData;
RxMemoryData1Nombre: TStringField;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
RxMemoryData1.Open;
RxMemoryData1.Append;
RxMemoryData1Nombre.Value := 'Luis';
RxMemoryData1.Post;
RxMemoryData1.Append;
RxMemoryData1Nombre.Value := 'Arturo';
RxMemoryData1.Post;
RxMemoryData1.First;
while not RxMemoryData1.Eof do
begin
Memo1.Lines.Add(RxMemoryData1Nombre.Value);
RxMemoryData1.Next;
end;
RxMemoryData1.Close;
end;
end.
Ingrese 2 registros al RXMemoryData, y al preguntar la propiedad recordcount me dice que hay 2 registros, pero al recorrer con el "while", el campo: "RxMemoryData1Nombre.Value" aparece vacio.
El "FieldKind" del campo "Nombre" ingresado en el RXMemoryData es "fkData". Probe tambien colocandolo como: "fkCalculated" y nada, de ninguna forma almacena el valor, solo ingresa el registro en blanco.
¿Que podrá ser? De verdad no tengo ni idea... Asumo que pueda ser un BUG de estos nuevos componentes RXLib, el problema es que en la aplicación que estoy migrando hay muchos procesos que utilizan este componente RXMemoryData y cambiar esas rutinas es inicialmente Impensable...