FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
guardar imagen en campo longblob o blob
Buen día e estado buscando y no logro encontrar un hilo que me sirva para guiarme para guardar una imagen.
Les comento que estoy usando unidac para las conexión y consulta a la base de datos, logro visualizar y seleccionar la imagen que se va a guardar pero el problema viene cuando doy en el botón guardar pues no me guarda la imagen tengo este codigo primero muestro y selecciona la imagen con este código Código:
if D_Img.Execute then begin // bloqueamos el boton de guardar para que la imagen termine de cargar. BtmGuardar.Enabled := false; // verificamos el tipo de extension del archivo ext := ExtractFileExt(D_Img.FileName); // verificamos que sea de as extensiones especificadas en el filtro if (ext = '.png') then begin // creamos la instancia de la clase png := TPngImage.Create; // cargamos y mostramos la imagen; con SaveToStream cargamos en temporal Img_base.Picture.LoadFromFile(D_Img.FileName); png.LoadFromFile(D_Img.FileName); // liberamos la memoria ram png.Free; // desbloqueamos el boton de guardar para que la imagen termine de cargar. BtmGuardar.Enabled := true; end else if (ext = '.jpeg') or (ext = '.jpg') then begin // creamos la instancia de la clase jpg := TJpegImage.Create; // cargamos y mostramos la image Img_base.Picture.LoadFromFile(D_Img.FileName); jpg.LoadFromFile(D_Img.FileName); // liberamos la memoria ram jpg.Free; // desbloqueamos el boton de guardar para que la imagen termine de cargar. BtmGuardar.Enabled := true; end else begin // Mostramos un error por si el usuario a seleccionado una extension equibocada png.Free; jpg.Free; MessageBox(Application.Handle, Pchar('A seleccionado una extensión que no es permitida (' + ext + ')'), Pchar('¡Error!'), MB_OK + MB_ICONWARNING); end; end; Código:
{ Insertar } sql := 'INSERT INTO cm_producto(Imagen,Barcode,Descripcion,Inv_min,Caja,Und,F_crear_prod,Id_catg,Id_marca,Estado_Prod) VALUES(:Param0 ,''' + EdtCod_Barra.Text + ''',''' + EdtDescripcion.Text + ''',''' + EdtInve_Min.Text + ''',''' + EdtCaja.Text + ''',''' + EdtUnd.Text + ''',''' + EdtFecha.Text + ''',''' + DBEdt_Categoria_id.Text + ''',''' + DBEdt_Marca_id.Text + ''',''Activo'')'; // mostramos el fomulario y lo ubicamos Frm_Producto.Visible := true; Frm_Producto.Show; MS := TMemoryStream.Create; MS.LoadFromFile(D_Img.FileName); // ejecuta la consulta // DataModuleLACM.Consulta_Flotante(sql); DataModuleLACM.UniQuery1.sql.Add(sql); DataModuleLACM.UniQuery1.ParamByName('Param0') .LoadFromStream(MS, ftGraphic); DataModuleLACM.UniQuery1.Active; DataModuleLACM.UniQuery1.ExecSQL; MS.Free; DataModuleLACM.UniQuery1.Close; esto es lo que tengo en el botón de guardar; gracias por la atención prestada |
#2
|
||||
|
||||
Mira los enlaces similares que están al final de esta página, abajo del todo.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
Cita:
Cita:
|
#4
|
||||
|
||||
Cita:
https://www.clubdelphi.com/foros/showthread.php?t=90075 https://www.clubdelphi.com/foros/showthread.php?t=81289
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
||||
|
||||
Prueba quitando Active. Si no me equivoco esto es una función que devuelve si el query está ejecutado o no.
Por otro lado, utiliza parámetros siempre que puedas. Evita un montón de errores (por ejemplo si meten una comilla simple en la descripción. Además es mucho mas facil leer el código. Por otro lado, ¿cuál es el error?
|
#6
|
||||
|
||||
También puede ser que tengas que cargar el parámetro de esta forma:
|
#7
|
||||
|
||||
También se me ocurre que tenga el mismo "problema" que los componentes FIBPlus para Firebird.
El componente FBQuery no puede cargar ni leer BLOBs. los devuelve como el texto "Blob". Para cargar imágenes utilizo TFIBDataSet Agrego un SelectSQL que no me devuelva nada y un InsertSQL con el que trabajaré
|
#8
|
||||
|
||||
Creo recordar que también puedes guardar la imagen en la BD leyéndola de un fichero imagen, más o menos así:
Con el TFIBDataSet.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Guardar y cargar imagen en campo blob | look | Firebird e Interbase | 15 | 03-08-2017 22:05:55 |
Guardar imagen en campo BLOB de MySQL | Mteje | Varios | 2 | 25-08-2016 17:17:54 |
Guardar un JPEG en un campo LongBlob | darkamerico | MySQL | 6 | 02-04-2016 18:27:40 |
Guardar imagen en campo Blob (tabla en access) | DANIEL1818 | Conexión con bases de datos | 1 | 17-06-2015 06:12:59 |
guardar imagen en campo blob | edgar_prospero | Varios | 10 | 14-11-2012 21:47:22 |
|