PDA

Ver la Versión Completa : Almacenar Imagen en Mysql usando ADO


adeszeus
20-06-2010, 22:35:36
Buenas tardes he estado haciendo las pruebas y hasta conflictos con mis tipos de datos me marca, hahahaha de manera demasiado rustica lo he logrado solucionar, sin embargo sigo sin poder colocar la imagen en el campo de tipo blob tengo este codigo
if OpenPictureDialog1.FileName<>'' then
begin
sql:='insert into piezas (tipo,precio,cantidad,imagen)'+
' values('+#39+Edit2.Text +#39 +','+#39+ Edit3.Text +#39+','+#39+Edit4.Text +#39+',:Imagen)';
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:=Trim(sql);
ADOQuery1.Parameters.ParamByName('Imagen').LoadFromFile(OpenPictureDialog1.FileName,
ftblob);
// ADOQuery1.Active:=True;
ADOQuery1.ExecSQL;
end;

Pero en la linea de cargar la imagen me marca error de Ole Exception, argumentos incorrectos, fuera del intervalo permitodo o en conflicto con otros... espero me puedan auxiliar gracias

rgstuamigo
10-07-2010, 18:20:37
Has una búsqueda usando nuestro buscador (http://www.clubdelphi.com/foros/search.php) y de seguro vas encontrar muchos hilos(temas) que te van a ayudar;) , ya que ese asunto se a tratado en infinidades de ocaciones.;).
Saludos...:)

Caral
10-07-2010, 20:33:50
Hola
By cHackAll:

var
Form1: TForm1;

implementation

{$R *.dfm}

uses jpeg;

var jpg: TJPEGImage;

procedure TForm1.FormCreate(Sender: TObject);
begin
jpg := TJPEGImage.Create; // Creamos el objeto que "entiende" al JPEG

end;

procedure TForm1.Button1Click(Sender: TObject);
var bmp: TBitmap; Stream: TStream;
begin
if not OpenDialog1.Execute then Exit;

bmp := TBitmap.Create; // Creamos el objeto que "entiende" al Bitmap
bmp.LoadFromFile(OpenDialog1.FileName); // cargamos la imagen
jpg.Assign(bmp); // signamos la imagen BMP al objeto del JPEG
bmp.Destroy; // y liberamos el objeto. }

ADOTable1.Open; // Abrimos la tabla
ADOTable1.Insert; // Insertamos una nueva tupla
Stream := ADOTable1.CreateBlobStream(ADOTable1.FieldByName('photo'), bmWrite); // Asignamos el BLOB a un stream
jpg.SaveToStream(Stream); // y guardamos la imagen como JPEG (convertido), en el stream
Stream.Destroy; // liberamos.
ADOTable1.Post; // Guardamos.

end;

Saludos