![]() |
extraer de un campo blob a fichero
Hola, soy un novato con delphi ya que es la primera vez que trabajo con este, lo que estoy intentando hacer es:
Sacar de un campo blob de la BD una fotografia para posteriormente guardarla en un fichero en el disco duro (las fotos todas seran jpg). Hasta ahora he realizado este código: Código Delphi unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Odbc; type TForm1 = class(TForm) Button1: TButton; Label1: TLabel; Label2: TLabel; Label3: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public end; var Form1: TForm1; implementation procedure TForm1.Button1Click(Sender: TObject); var DBprueba: TODBCDatabase; QBuscar: TODBCQuery; cadena1: String; fileData : TStringList; begin fileData := TStringList.Create; DBprueba.Params:='FILEDSN=./conectar.dsn;PWD=1'; DBprueba.Connect; QBuscar:=TODBCQuery.Create; cadena1:= ('Select foto from persona where (nombre = "David")'); QBuscar.Sql:= cadena1; Label1.caption :=cadena1; QBuscar.Execute; Label2.caption:=QBuscar.Execute; fileData.Text:=QBuscar.Execute; Label3.caption:=fileData.Text; fileData.savetofile('c:\prueba.jpg'); end; {$R *.DFM} end. El problema le tengo cuando intento crear el fichero fileData.Text:=QBuscar.Execute; para posteriormente salvarlo en el disco duro. El error que me genera es que no puedo almacenar en string el procedimiento de la consulta sql y no se como he de tratarla para almacenar los caracteres en un fichero para posteriormente renombrarlo a jpg y que se quede la foto guardada. Un saludo y gracias de antemano por vuestra ayuda. Edito Se me olvido mencionar trabajo con una versión de delphi bastante antigua la 2.0. |
Hola Intelinside,
No he trabajado nunca con un TODBCQuery, pero prueba a hacer esto:
Lo que no puedes hacer es almacenar es el contenido de un campo blob binario en un TStringList. Un TStringList no es más que un array de String y ahí no puedes almacenar un fichero binario (jpg). Con el código que te he puesto arriba, guardas directamente el contenido del campo blob en un fichero en disco. Espero que te ayude. Un saludo. |
| La franja horaria es GMT +2. Ahora son las 01:32:36. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi