Ver Mensaje Individual
  #8  
Antiguo 23-09-2018
leus leus is offline
Registrado
NULL
 
Registrado: sep 2018
Posts: 9
Reputación: 0
leus Va por buen camino
Ah, creo que encontré el problema, y de momento parece que todo funciona ok.

Las declaraciones de algunos overrides de AnyDAC no eran correctas, por lo que se estaba llamando a las funciones base de TDataset (que no hacen nada). Estos son los cambios necesarios, en caso de que alguien se encuentre con este problema:

Código:
 Source/uADCompDataSet.pas | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/Source/uADCompDataSet.pas b/Source/uADCompDataSet.pas
index b324bc9..af9cf96 100644
--- a/Source/uADCompDataSet.pas
+++ b/Source/uADCompDataSet.pas
@@ -758,8 +758,8 @@ type
     procedure GetDetailLinkFields(AMasterFields, ADetailFields: TList); {$IFNDEF AnyDAC_FPC} override; {$ENDIF}
     function GetColumnField(AColumn: TADDatSColumn): TField;
     function GetFieldColumn(AField: TField): TADDatSColumn; overload;
-    function GetFieldData(AFieldNo: Integer; ABuffer: Pointer): Boolean; overload; {$IFNDEF AnyDAC_FPC} override; {$ENDIF}
-    function GetFieldData(AField: TField; ABuffer: Pointer): Boolean; overload; override;
+    function GetFieldData(AFieldNo: Integer; var ABuffer: TValueBuffer): Boolean; override;
+    function GetFieldData(AField: TField; var ABuffer: TValueBuffer): Boolean; override;
 {$IFNDEF AnyDAC_FPC}
     function GetStateFieldValue(AState: TDataSetState; AField: TField): Variant; override;
 {$ENDIF}
@@ -3843,7 +3843,7 @@ begin
 end;
 
 {-------------------------------------------------------------------------------}
-function TADDataSet.GetFieldData(AFieldNo: Integer; ABuffer: Pointer): Boolean;
+function TADDataSet.GetFieldData(AFieldNo: Integer; var ABuffer: TValueBuffer): Boolean;
 var
   pRecBuf: PADBuffer;
   oColumn: TADDatSColumn;
@@ -3983,7 +3983,7 @@ begin
 end;
 
 {-------------------------------------------------------------------------------}
-function TADDataSet.GetFieldData(AField: TField; ABuffer: Pointer): Boolean;
+function TADDataSet.GetFieldData(AField: TField; var ABuffer: TValueBuffer): Boolean;
 var
   pRecBuf: PADBuffer;
 begin
@@ -4004,7 +4004,7 @@ begin
         if AField.DataType = ftBCD then
           CurrToBCD(PCurrency(pRecBuf + 1)^, PADBcd(ABuffer)^)
         else
-          ADMove(pRecBuf[1], ABuffer^, AField.DataSize);
+          ADMove(pRecBuf[1], PADBuffer(ABuffer)^, AField.DataSize);
     end;
   end;
 end;
Responder Con Cita