Crear una tabla en MySQL para almacenar las imágenes.
Archivar una imágen en un campo de la tabla de nuestra base de datos.
Proceder a su descarga posterior.
1. Crear una tabla de MySQL
Vamos a tener que crear una pequeña tabla en nuestra base de datos
MySQL con la siguiente estructura:
CODIGO, DESCRIPCION, FOTO (Atención al campo foto ya que será del tipo
BLOB)
Crearemos la tabla desde nuestro querido VFP.
********************************************
* CREACION DE TABLA (albumfotos)
********************************************
LOCAL CSQL, NH, CCADENA
CSQL=""
NH=0
CCADENA=""
CSQL= "DRIVER={MySQL ODBC 3.51 Driver};" + ;
"SERVER=127.0.0.1;" + ;
"PORT=3306;" + ;
"UID=usuario;" + ;
"PWD=pasword;" + ;
"DATABASE=mybasededatos;" + ;
"OPTIONS=2049;"
NH=SQLSTRINGCONNECT(""+CSQL, .T.)
IF NH > 0
SQLSETPROP(NH,'Asynchronous', .T.)
SQLSETPROP(NH,'BatchMode', .T.)
TEXT TO CSQL TEXTMERGE NOSHOW
CREATE TABLE albumfotos (
codigo char(03) NOT NULL default '000',
descripcion varchar(50) default '',
foto longblob,
PRIMARY KEY (codigo))
ENGINE=InnoDB ROW_FORMAT=DYNAMIC
ENDTEXT
SQLPREPARE(NH,""+CSQL)
SQLEXEC(NH)
WAIT WINDOW 'Tabla Creada'
SQLDISCONNECT(NH)
ENDIF
RELEASE CSQL,NH,CCADENA
*************************************************************2.
Archivar imagen en la tabla de MySQL.
Vamos a archivar una imagen en la tabla (albumfotos). La imagen estará
ubicada en el directorio raiz C:\ y será el archivo de imagen
FOTO001.JPG
Crearemos una variable en VFP del tipo BLOB que contendrá la imagen
antes de su posterior grabación: (En este caso omitiremos las ordenes
de conexión a la base de datos)
********************************************
* ARCHIVAR IMAGEN
********************************************
LOCAL BIMAGEN AS BLOB
BIMAGEN=(0h) && Inicializamos la Variable
BIMAGEN=FILETOSTR("C:\FOTO001.JPG")
TEXT TO CSQL TEXTMERGE NOSHOW
REPLACE INTO albumfotos
SET CODIGO='001',
DESCRIPCION='FOTO-001',
FOTO=?BIMAGEN
ENDTEXT
SQLPREPARE(NH,""+CSQL)
SQLEXEC(NH)
WAIT WINDOW 'Imagen Grabada'
RELEASE BIMAGEN
*************************************************************3.
Extraer imagen de la tabla de MySQL.
Vamos a Extraer la misma imagen de la tabla de MySQL y ahora la
guardaremos en el directorio fotos. (Obviamente en este caso también
omitiremos las ordenes de conexión a la base de datos)
********************************************
* EXTRAER IMAGEN
********************************************
TEXT TO CSQL TEXTMERGE NOSHOW
SELECT FOTO
FROM albumfotos WHERE CODIGO='001'
ENDTEXT
SQLPREPARE(NH,""+CSQL,"TCURSOR")
SQLEXEC(NH)
SELECT TCURSOR
IF RECCOUNT() > 0
STRTOFILE(TCURSOR.FOTO,"C:\FOTOS\FOTO001.JPG")
ENDIF
CLOSE TABLES ALL
********************************************Esto no solo sirve para
almacenar imágenes solamente, También es posible almacenar documentos
PDF, Word, lo que se nos ocurra. Yo por ejemplo lo utilizo para
almacenar cada logo de empresa en mi base de datos, para
posteriormente imprimirlo en la cabecera de las facturas e informes.
____________________________________________________________
Sacado de http://www.portalfox.com/index.php?name=News&file=article&sid=2473