Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-08-2005
Avatar de CarlosHernandez
CarlosHernandez CarlosHernandez is offline
Miembro
 
Registrado: oct 2003
Posts: 139
Poder: 21
CarlosHernandez Va por buen camino
Question Fotos en Firebird 1.0 y Delphi 6!!!!!!!!!!

a todos los del foro reciban un cordial saludo de mi parte.

estoy migrando un programa de paradox a firebird... uso delphi 6,
firebird 1.0, y el Ibacces 1.18.(la extension es .GDB).

este es mi primer programa en firebird.....

¿mi pregunta principal es como inserto en mi tabla la fotografia,
y luego como la busco, la muestro en el form y si quiero la cambio por otra
fotografia?

ya rebice algunos hilos y encontre algunas cosas...

intente algo y medio me dio...

tengo una tabla, se llama personal.
para la fotografia cree dos campos


FOTO: BLOB SUB_TYPE 0 SEGMENT SIZE 80.

FORMATO_FOTO:var char 3


en el boton coloco lo siguiente:

codigo:

Código:
var

   cedula,s:string;
   m, f:TStream;
begin


with IBDataSet1 do begin

open;
insert;

 FieldByName('cedula').AsString:=edit1.Text;
 FieldByName('nombre').AsString:=edit2.Text;
 FieldByName('apellido').AsString:=edit3.Text;


 ////**********----------    foto

  m:=CreateBlobStream(IBDataSet1FOTO,bmWrite);
  f:=TFileStream.create(OpenPictureDialog1.FileName, fmopenread);
 m.CopyFrom(f, f.Size);
  s:=AnsiUpperCase(ExtractFileExt(OpenPictureDialog1.FileName));
  IBDataSet1FORMATO_FOTO.AsString:=copy(s,2,3);//elimino el punto

 ////**********----------   foto



post;
IBTransaction1.Commit;
close;

f.Free;
m.Free;

ShowMessage('Ingresado correctamente');
edit1.Clear;
edit2.Clear;
edit3.Clear;
end;
la imagen la busco con un openpicturedialog en un image1.

para la consulta por medio de un ibquery:
Código:
 IBQuery1.SQL.Clear;                                      
    IBQuery1.Close;
     IBQuery1.SQL.Add('SELECT * FROM personal order by cedula asc' ); //
      IBQuery1.Prepare;
        IBQuery1.Open;
bueno en el grid se ven los datos y en un dbimage1 la foto.


intente hacer el cambio con UPDATE pero el parametro donde voy a colocar
la fotografia no se como colocarle el tipo de datos...

Código:
IBQuery1.SQL.Clear;                                      
    IBQuery1.Close;
     IBQuery1.SQL.Add('UPDATE personal SET  foto=:parfoto, 
formato_foto=:parext     WHERE cedula=:parcedula  '); //

//***//IBQuery1.params(???????????????????????);//***//

      IBQuery1.Prepare;
        IBQuery1.Open;
//***//
aqui es donde no se como colocarlo, el valor, el tipo, etc......

necesito cambiar la fotografia una vez localizada, no se si por update sirva
es lo unico que se...

ah en los hilo que encontre dicen lo siguiente...

Cita:
Empezado por rastafarey
Mira hasta donde se de una manera directa no conozco
nada.

pero con un udf que verifique el contenido lo puedes solucionar.

Pero te puedo dar una solucion que te resulte mejor.

Bueno no mejor para mi fue la mejor. Todo las imagenes la inserto como jpg
ya que es el formato d eimagen mas pequeño que existe(bueno que yo
cocnosco si existe otro me lo pueden decir).

¿que hago?
Bueno desde delphi cuando leen imagen lo que hago es que tranformo de
cualquier tipo a jpg y listo.

Por que una vez realice una aplicacion que aceptara todas las imagenes y
resulta que que los usuarios el unico formato que usaron fue bmp y la base d
edatos se puso muy lenta cada vez que e tria dichas imagnes asi que lo
arregle como te dije anteriormente y la diferencia fue del cielo a la tierra.


Bueno no es la solucion que buscabas pero espero te sirva de ayuda.

Si no es mucho pedir un ejemplo de lo anterior... y disculpen el abuso lo
entendi pero no se como...

de necesitar mas informacion haganmelo saber. agradezco cualquier ayuda....

Saludos.
__________________
begin
Elverdugo79@hotmail.com
end;

Última edición por CarlosHernandez fecha: 05-08-2005 a las 17:33:07.
Responder Con Cita
  #2  
Antiguo 04-08-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Si mas no recuerdo creo que debes crear un fieldblobstream o blobfieldstream y lees la figura(te recomienso transformar todas las figuras a jpg por lo del tamaño) y luego se lo asignas al camo y listo.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #3  
Antiguo 04-08-2005
Avatar de CarlosHernandez
CarlosHernandez CarlosHernandez is offline
Miembro
 
Registrado: oct 2003
Posts: 139
Poder: 21
CarlosHernandez Va por buen camino
Ejemp..

ok. podrias por favor darme un ejemplo que la verdad no se como hacerlo...... estoy igual
lo que necesito es como editarla despues de insertarlas.... por medio de sql si es posible gracias...

Última edición por CarlosHernandez fecha: 05-08-2005 a las 17:26:51.
Responder Con Cita
  #4  
Antiguo 05-08-2005
Avatar de CarlosHernandez
CarlosHernandez CarlosHernandez is offline
Miembro
 
Registrado: oct 2003
Posts: 139
Poder: 21
CarlosHernandez Va por buen camino
__________________
begin
Elverdugo79@hotmail.com
end;
Responder Con Cita
  #5  
Antiguo 05-08-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Código Delphi [-]
Var
  b: TBlobField;
begin
  b := TBlobField.Create(Self);
  try
    B.LoadFromFile('Archivo');
    IBQuery1.Fields[0] := B;
  Finally
    B.Free;
  End;
end;
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 11:20:03.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi