PDA

Ver la Versión Completa : Subir imagen a base de datos


javier14
23-08-2023, 14:46:36
Buenas, como puedo subir a mi base de datos SQLServer una imagen al pulsar un botón. Necesito saber como pasarle la imagen del Image1:

procedure TForm1.btnAnyadirBLClick(
Sender: TObject);
begin
with BL_ADOQ do
begin
SQL.Clear;
SQL.Text := 'INSERT INTO Datos_BL (codigo, codigoBL, entregado, imagen) ' +
'VALUES (''' + edCodigo.Text + ''',''' + edCodigoBL.Text + ''',''0'', )';
ExecSQL;
end;

end;

procedure TFormInsertIncidencias.Image1Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;


Gracias^\||/

Casimiro Notevi
23-08-2023, 16:32:59
https://www.clubdelphi.com/foros/showthread.php?t=81256


Y no olvides usar las etiquetas de código.
https://www.clubdelphi.com/images/UtilizarTAGs.png

pgranados
23-08-2023, 16:34:02
Nunca he subido un archivo directamente a la db por el espacio que pueda consumir, lo que yo hago es copiar la imagen dentro de mi aplicación o de una ruta y ya en la base de datos salvo la ruta del archivo + nombre del archivo + extensión.

Aunque respondiendo a tu pregunta, pues chatgpt dice lo siguiente:


ImageStream := TMemoryStream.Create;
try
Image1.Picture.Graphic.SaveToStream(ImageStream); // Guarda la imagen en el stream
ImageStream.Position := 0; // Reinicia la posición del stream

Query.SQL.Text := 'INSERT INTO TuTabla (ImagenColumn) VALUES (:Image)';
Query.Parameters.ParamByName('Image').LoadFromStream(ImageStream, ftBlob); // Carga el stream en el parámetro
Query.ExecSQL;
finally
ImageStream.Free;
end;