Ver Mensaje Individual
  #6  
Antiguo 27-11-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Reputación: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
¡Hola!

Según veo, ese error es lanzado por los IBX, específicamente en el método TIBCustomDataSet.InternalGetFieldData de la unidad IBCustomDataSet.pas:

Código Delphi [-]
      with CurrentRecord^.rdFields[FMappedFieldPosition[Field.FieldNo - 1]] do
      begin
        Data := Buff + CurrentRecord^.rdFields[FMappedFieldPosition[Field.FieldNo - 1]].fdDataOfs;
        if (fdDataType = SQL_VARYING) or (fdDataType = SQL_TEXT) then
        begin
          if fdDataLength <= Field.Size then
          begin
            if (Field is TStringfield) and TStringField(Field).FixedChar then
              FillChar(Buffer^, Field.Size, ' ');
            Move(Data^, Buffer^, fdDataLength);
            if (Field is TStringfield) and TStringField(Field).FixedChar then
              PChar(Buffer)[Field.Size] := #0
            else
              PChar(Buffer)[fdDataLength] := #0;
          end
          else
            IBError(ibxeFieldSizeMismatch, [Field.FieldName]);
        end
        else
          Move(Data^, Buffer^, Field.DataSize);
      end;

La consulta SQL está arrojando una descripción de mayor longitud que el tamaño definido del campo. Lo curioso es que, según nos dices, no utilizas campos persistentes. Pero lo que sí es seguro es que tiene que ver con discrepancia en tamaños de campos. Mira si no estás omitiendo algo por ahí y nos comentas.

Saludos.

Al González.
Responder Con Cita