PDA

Ver la Versión Completa : Error al grabar un campo blob desde stream


fjcg02
22-11-2009, 15:27:18
Hola amigos,
Creo que el título es bastante explicativo.

Condiciones: Delphi 7 y Firebird 2.0
tengo este código,

procedure TFormMain.SalvarConfiguracionA(Sender: TForm);
var Stream: TMemoryStream;
begin
Stream:= TMemoryStream.Create();
with DM1.SQLSPUsuarioConf do
begin
ParamByName('PUsuario').AsString:= wUsuario;
ParamByName('PObjeto').AsString:= Objeto;
cxGridDBTableViewX.StoreToStream(Stream, [], '');
Stream.Seek(0,0);
ParamByName('PValorA').LoadFromStream(Stream, ftBlob);
ExecProc;
end;
Stream.Free;
end;

en la tabla el campo blob está definido como BLOB, Bynary y tamaño 10.000

El error que me da es el siguiente al hacer el ExecProc

arithmetic exception, numeric overflow or string truncation.

Alguna pista ?

Gracias por su atención

fjcg02
23-11-2009, 22:39:31
Otra cosa que me parece interesante.
El tamaño del stream es de aprox 1.500 bytes, pero tras asignar el parametro PValorA, su tamaño es cero.
Por lo tanto, parece que el problema está en la asignación del parámetro...

Algún comentario ?

Gracias

fjcg02
25-11-2009, 22:02:49
Hola de nuevo.
no sé si a alguien le ha ocurrido, pero me he dado cuenta de que ocurre en más store procedures que se llaman desde el programa, y que desde luego, hasta ahora funcionaban.
Habrá algún parámetro tanto de los StoreProcedures como del SQLConnection que haya cambiado sin querer y sea el responsable ? Si fuera así no funcionaría ningún SP, pero algunos sí funcionan.

Socorroooooo !

Saludos