Gracias a ambos, lo del campo con el identificador para el tipo de datos ya lo tenia previsto. En cuanto a la lectura, efectivamente faltaba el "m.seek" la rutina quedo así:
Código Delphi
[-]
Procedure LeerMontosDeclaracion(Var tot:tDeclaracion; cmp : TBlobField);
Var
m : TMemoryStream;
Begin
FillChar(tot,sizeOf(tot),0);
m := TMemoryStream.Create;
try
cmp.SaveToStream(m);
m.seek(0, soFromBeginning);
m.SetSize(SizeOf(tot));
m.ReadBuffer(tot,SizeOf(tot));
Finally;
m.Free;
End;
End;
Con estos procedimientos creo que se puede leer y/o guardar cualquier buffer de memoria en un campo blob (ajustando el tipo del parametro del procedimiento).