Ver Mensaje Individual
  #5  
Antiguo 05-08-2003
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Reputación: 21
mlara Va por buen camino
Gracias por tus respuestas, me han servido mucho. Sin embargo sigo teniendo problemas para visualizar una imagen guardada en una tabla. Este es el código que estoy usando:

Código:
    with DM.Q1 do begin
      SQL.Clear;
      SQL.Add('SELECT * FROM EstAdditional1 WHERE Estudiante = '+QEstudiantes.FieldByName('CodigoInt').AsString);
      Open;
      if RecordCount = 1 then begin
        (FieldByName('Fotografia') as TGraphicField).SaveToStream(MemoryStream);
        ImageBuffer.LoadFromStream(MemoryStream);
        with fEstudiantesRegistroFotografia do begin
          iFotografia.Picture.Assign(ImageBuffer);
          iFotografia.Visible := True;
        end;
      end;
      Close;
    end;
    MemoryStream.Free;
    ImageBuffer.Free;
, donde:

DM es un módulo de datos
Q1 es un TQuery
QEstudiantes es un TQuery
MemoryStream es un TMemoryStream
ImageBuffer es un TJPEGImage
fEstudiantesRegistroFotografia es un TForm
iFotografia es un TImage

En este código no se genera ningún error. El error se genera cuando se ejecuta el ShowModal de la forma que contiene la imágen, es decir cuando se ejecuta:

fEstudiantesRegistroFotografia.ShowModal;

El mensaje de error dice:

JPEG error #42.

En realidad no sé que significa, y aunque he hecho algunas modificaciones no he dado con el problema. Incluso he probado con varias imágenes.

Por si acaso, estoy guardando la imagen así:

Código:
      // Fotografía
      if fEstudiantesRegistroFotografia.iFotografia.Visible then begin
        MemoryStream := TMemoryStream.Create;
        fEstudiantesRegistroFotografia.iFotografia.Picture.Graphic.SaveToStream(MemoryStream);
        Clear;
        Add('DELETE FROM EstAdditional1 WHERE Estudiante = '+fEstudiantesConsulta.QEstudiantes.FieldByName('CodigoInt').AsString);
        DM.Q1.ExecSQL;
        Clear;
        Add('INSERT INTO EstAdditional1 (Estudiante, Fotografia) VALUES ('+fEstudiantesConsulta.QEstudiantes.FieldByName('CodigoInt').AsString+', :Foto)');
        DM.Q1.ParamByName('Foto').LoadFromStream(MemoryStream, ftGraphic);
        DM.Q1.ExecSQL;
        MemoryStream.Free;
      end;
De nuevo muchas gracias por su ayuda.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
Responder Con Cita