Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-06-2010
dunia_lv dunia_lv is offline
Miembro
 
Registrado: feb 2005
Posts: 60
Poder: 20
dunia_lv Va por buen camino
Manipulación de Imágenes en SQL SERVER desde Delphi

Hola a todos!!
Estoy en la tarea de insertar imágenes a una tabla Sql Server a través de un procedimiento almacenado desde Delphi. El campo donde inserto las imágenes es de tipo Image. Resulta que no sé de que manera insertar una imagen, he estado buscando ejemplos y los existentes me trabajan utilizando un TAdoTable, pero este no es mi caso, pues como dije anteriormente, necesito hacerlo a golpe de procedimientos almacenados. Además de ello necesito saber cómo puedo luego mostrar esa imagen guardada en la BD en un componente TDBImage o TImage. ¿Alguien conoce de algún ejemplito de mis dos dudas planteadas?

Gracias por su atención y saludos

Dunia
Responder Con Cita
  #2  
Antiguo 08-06-2010
Avatar de afunez2007
afunez2007 afunez2007 is offline
Miembro
 
Registrado: oct 2007
Ubicación: La Ceiba, Honduras
Posts: 170
Poder: 17
afunez2007 Va por buen camino
Lightbulb

Yo hace un tiempo hice una aplicacion que tenia un pageframe que capturaba varias fotos correspondientes a un vehiculo que entraba a reparacion en un taller, el codigo que usaba era el siguiente:
Este es para guardar la foto en la base de datos:
Código Delphi [-]
procedure TFotosxEquipo.BitBtn1Click(Sender: TObject);
begin
  if OpenPictureDialog1.Execute then
  begin
    if table1.RecordCount=0 then begin
      dbedit1.Text:=REPARA.HOJA.Text;
      q1.sql.Text:=('insert into FOTOSXREPFB01 (CVE_DOC,'+FOTOS.ActivePage.Caption+') values (:CVE_DOC,agina)');
      q1.parambyname('CVE_DOC').AsString:= REPARA.HOJA.Text;
      q1.parambyname('pagina').LoadFromFile(OpenPictureDialog1.filename,ftGraphic       );
      q1.execsql;
      FotosxEquipo.Database1.Commit;
      Table1.Active:=false;
      Table1.Filtered:= FALSE;
      Table1.Filter:='CVE_DOC='+QuotedSTR(REPARA.HOJA.Text);
      Table1.Filtered:= True;
      Table1.Active:=true;
     end else begin
      q1.sql.text:=('update FOTOSXREPFB01 set '+FOTOS.ActivePage.Caption+'=agina where CVE_DOC=:CVE_DOC');
      q1.parambyname('CVE_DOC').AsString:= table1.fieldbyname('CVE_DOC').Text;
      q1.parambyname('pagina').LoadFromFile(OpenPictureDialog1.filename,ftGraphic       );
      q1.execsql;
      FotosxEquipo.Database1.Commit;
      Table1.Active:=false;
      Table1.Filtered:= FALSE;
      Table1.Filter:='CVE_DOC='+QuotedSTR(REPARA.HOJA.Text);
      Table1.Filtered:= True;
      Table1.Active:=true;
     end;
  end;
end;

Y este es para guardarla como archivo luego que ya habia sido guardada en la base y por ejemplo requiero guardarla en jpg para enviarla por email:
Código Delphi [-]
procedure TFotosxEquipo.BitBtn2Click(Sender: TObject);
var
  jp: TJPEGImage;  //Requires the "jpeg" unit added to "uses" clause.
begin
  jp := TJPEGImage.Create;
  try
    with jp do
    begin
      jp.LoadFromStream(Table1.CreateBlobStream(table1.FieldByName(FOTOS.ActivePage.Caption),bmread));
      SaveToFile(ExtractFilePath(Application.ExeName)+FOTOS.ActivePage.Caption+'.jpg');
      Messagedlg('Imagen Guardada en:'+#13+ExtractFilePath(Application.ExeName)+FOTOS.ActivePage.Caption+'.jpg',mtWarning, [mbok],1);
    end;
  finally
    jp.Free;
  end;
end;

Y este ultimo sirve para imprimirla a traves de un quick report:
Código Delphi [-]
procedure TFotosxEquipo.BitBtn3Click(Sender: TObject);
var cved:string;
    jp: TJPEGImage;  //Requires the "jpeg" unit added to "uses" clause.
begin
  jp := TJPEGImage.Create;
  try
    with jp do
    begin
      jp.LoadFromStream(Table1.CreateBlobStream(table1.FieldByName(FOTOS.ActivePage.Caption),bmread));
      SaveToFile(ExtractFilePath(Application.ExeName)+FOTOS.ActivePage.Caption+'.jpg');
      //Messagedlg('Imagen Guardada en:'+#13+ExtractFilePath(Application.ExeName)+FOTOS.ActivePage.Caption+'.jpg',mtWarning, [mbok],1);
    end;
  finally
    jp.Free;
  end;
rptImpFoto := TrptImpFoto.Create(Application);
  Try
  cved:=DBEdit1.Text;
  rptImpFoto.Query1.Active:=false;
  rptImpFoto.Query2.Active:=false;
  rptImpFoto.Query1.ParamByName('initialcod').Text:=cved;
  rptImpFoto.Query2.ParamByName('initialcod').Text:=cved;
  rptImpFoto.QRLabel5.Caption:=FOTOS.ActivePage.Caption;
  rptImpFoto.QRImage1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+FOTOS.ActivePage.Capti  on+'.jpg');
  //rptImpFoto.QRDBImage1.DataField:=FOTOS.ActivePage.Caption;
  rptImpFoto.Query1.Active:=true;
  rptImpFoto.Query2.Active:=true;
  rptImpFoto.QuickRep1.previewmodal;
  Finally
  rptImpFoto.Release;
  End;
end;

Espero estas ideas te sirvan para resolver tu situacion

Saludos
__________________
Si robas, roba un beso, si mientes que sea por amor y si engañas que sea a la muerte!!
Responder Con Cita
  #3  
Antiguo 09-06-2010
dunia_lv dunia_lv is offline
Miembro
 
Registrado: feb 2005
Posts: 60
Poder: 20
dunia_lv Va por buen camino
Muchas gracias pero sigo pero no consigo aún lo que busco
Responder Con Cita
  #4  
Antiguo 09-06-2010
Avatar de afunez2007
afunez2007 afunez2007 is offline
Miembro
 
Registrado: oct 2007
Ubicación: La Ceiba, Honduras
Posts: 170
Poder: 17
afunez2007 Va por buen camino
Lightbulb

Cita:
Empezado por dunia_lv Ver Mensaje
Muchas gracias pero sigo pero no consigo aún lo que busco
Deberias de ponernos algo del codigo que tienes, o indicarnos cual es el metodo o componente que quieres utilizar, de esta forma podriamos ayudarte mejor.

Si ves el ejemplo que te mande, utiliza una query para enviar la foto a la bd y tambien esta el procedimiento para mostrarla en pantalla despues de haber sido guardada.

Saludos
__________________
Si robas, roba un beso, si mientes que sea por amor y si engañas que sea a la muerte!!
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Escanear imagenes desde delphi Durbed Gráficos 4 09-02-2008 06:48:03
Manipulacion de macros en excel desde delphi vick Conexión con bases de datos 2 27-10-2005 23:11:31
Manipulación de funciones de excel desde delphi5 vick Conexión con bases de datos 1 26-10-2005 04:08:09
Insertar Imagenes desde Delphi a un Documento Word ludan508 Servers 1 21-09-2004 01:07:02
de Visual Basic a Delphi... Manipulacion de campos!! abril Varios 5 04-07-2003 23:10:43


La franja horaria es GMT +2. Ahora son las 21:40:44.


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