Ver Mensaje Individual
  #1  
Antiguo 07-10-2005
Avatar de CarlosHernandez
CarlosHernandez CarlosHernandez is offline
Miembro
 
Registrado: oct 2003
Posts: 139
Reputación: 23
CarlosHernandez Va por buen camino
Unhappy Error Imagenes JPG BMP en ibquery

hola de nuevo....

trabajo con firebird 1.5 y delphi 6, yo se que he preguntado mucho en este foro pero despues que logre que me guardara las imagenes bmp y jpg todo bien, pero desde ayer me da error con los jpg dice que "imagen bitmap invalida" y aveces la muestra, otras veces no, y da error cuando quiero usar esa tabla en una consulta ibquery y asi no vea la foto me da el error si es un jpg, pero con bmp no....

el famoso error que me carga loco yque da el delphi es el siguiente "bitmap image is no valid."

las imagenes la visualizo en un image1...

codigo para buscar registros

Código Delphi [-]
 with tabla do begin
   //buscar cedula ya existente
   IBQuerypersonal.SQL.Clear;
   IBQuerypersonal.Close;
   IBQuerypersonal.SQL.Add('SELECT * FROM Personal WHERE cedula='+QuotedStr(Edit1.Text)+'' ); //
   IBQuerypersonal.Prepare;
   IBQuerypersonal.Open;
   with tabla.IBQuerypersonal do begin
     edit2.Text:=FieldByName('nombre').AsString;
     edit3.Text:=FieldByName('apellido').AsString;
     //*****ver foto
     if tabla.DSpersonalFOTO.IsNull then begin
       Image1.Picture:=nil;
     end else begin
       if tabla.DSpersonalFORMATOFOTO.AsString ='BMP' then
         image1.Picture.Graphic:=TBitmap.Create
       else if tabla.DSpersonalFORMATOFOTO.AsString ='JPG' then
         Image1.Picture.Graphic:=TJpegImage.Create
       else
         exit;
     m:=tabla.DSpersonal.CreateBlobStream(tabla.DSpersonalFOTO,bmread);
     Image1.Picture.Graphic.LoadFromStream(m);
     m.Free;
   end;
   //********* ver foto
y para ingresarlos..

Código Delphi [-]
 with tabla.IBQuerypersonal do begin
   close;
   SQL.Clear;
   SQL.Add('INSERT INTO Personal (');
   sql.Add('Cedula, Nombre);
   if OpenPictureDialog1.FileName<>'' then begin
     sql.Add(', FOTO');
     sql.Add(', FORMATOFOTO');
   end;
   sql.Add(', apellido') '); //
   sql.Add('VALUES ');
   sql.Add('(arcedula, arnombre');
   if OpenPictureDialog1.FileName<>'' then begin
     sql.Add(', arfoto, arformato');
   end;
   sql.Add(', arpellido)');
   Prepare;
   ParamByName('parcedula').AsString := edit1.Text;
   ParamByName('parnombre').AsString := edit2.Text;
   ParamByName('parapellido').AsString :=edit3.Text;
   if OpenPictureDialog1.FileName<>'' then begin
     ParamByName('parfoto').LoadFromFile(OpenPictureDialog1.FileName, ftBlob);
     s:=AnsiUpperCase(ExtractFileExt(OpenPictureDialog1.FileName));
     if s='.JPEG' then s:='.JPG';
       ParamByName('parformato').AsString :=copy(s,2,3);
   end;
   ExecSQL;
   {...}
y aunque sea que utilice el codigo de busqueda me da el erro si es jpg

Código Delphi [-]
 //buscar cedula ya existente
 IBQuerypersonal.SQL.Clear;
 IBQuerypersonal.Close;
 IBQuerypersonal.SQL.Add('SELECT * FROM Personal WHERE cedula='+QuotedStr(Edit1.Text)+'' ); //
 IBQuerypersonal.Prepare;
 IBQuerypersonal.Open;
en firebird tengo dos campos
formato string que guarda la extension y foto tipo Blob...

agradezco cualqueir ayuda.
__________________
begin
[email protected]
end;

Última edición por dec fecha: 07-10-2005 a las 19:11:05. Razón: ¡¡Encerrad el código fuente entre las etiquetas [DELPHI] ... [/DELPHI]!!
Responder Con Cita