Muy buenas,
Ya he podido resolver el problema.
Para resolverlo lo he hecho de una manera muy bruta, que es modificar directamente el codigo del Halcyon.
Del fichero gs6_DBF he modificado lo marcado como negrita.
Código:
Procedure GSO_dBaseFld.gsStuffABuffer(Buffer: PChar; const KeyFields: string; const KeyValues: Variant);
var
Psn: integer;
Ctr: integer;
cf: string;
cv: string;
tsl: TStringList;
begin
CurRecord := pointer(Buffer);
gsBlank;
if length(KeyFields) > 0 then
begin
tsl := TStringList.Create;
Psn := 1;
while Psn < length(KeyFields) do
begin
cf := gsExtractFieldName(KeyFields,Psn);
tsl.Add(cf);
end;
if tsl.Count = 1 then
begin
if ((VarIsStr(KeyValues)) and (KeyValues <> '')) or (IntToStr(KeyValues) <> '') then
cv := KeyValues
else
cv := '';
gsStringPut(tsl[0],cv);
end
else
begin
for Ctr := 0 to tsl.Count-1 do
begin
if KeyValues[Ctr] <> '' then
cv := KeyValues
else
cv := '';
gsStringPut(tsl[Ctr],cv);
end;
end;
tsl.Free;
end;
CurRecord := CurRecHold;
end;
Salutaciones,
Asegurpe