Que pena molestar de nuevo, pero es que ando requiriendo almacenar imágenes dentro de una tabla de postgress, del foro encontré un ejemplo que almacena varias imágenes en mysql.
- Code: Select all Expand view RUN
#include "FiveWin.Ch"
#include "xbrowse.ch"
#include "adodef.ch" // IMPORTANT
function mysqlimages()
local oCn, oRs, cSql, a
local cPath := "c:\fwh\bitmaps\pngs\"
local cPassWord := <yourpasswordhere>
oCn := FW_OpenAdoConnection( { "MYSQL", "localhost", "FWH", "root", cPassWord } )
if FW_AdoTableExists( "IMAGETEST", oCn )
oCn:Execute( "DROP TABLE IMAGETEST" )
endif
FWAdoCreateTable( "IMAGETEST", ;
{ { "IMGNAME", 'C', 20, 0 }, ;
{ "IMAGE", 'm', 10, 0 } }, ; // small 'm' indicates binary data
oCn )
for each a in Directory( cPath + "*.png" )
cSql := SQL ; // SQL is FWH command
INSERT INTO IMAGETEST ( IMGNAME, IMAGE ) ;
VALUES ( a[ 1 ], MemoRead( cPath + a[ 1 ] ) )
oCn:Execute( cSql )
next
oRs := FW_OpenRecordSet( oCn, "IMAGETEST" )
XBROWSER oRs TITLE "IMAGES IN MYSQL" SETUP ( ;
oBrw:nEditTypes := EDIT_GET, ;
oBrw:lCanPaste := .t. )
oRs:Close()
oCn:Close()
return nil
Realice las pruebas y funciona "correctamente", aunque tuve problemas con imágenes de gran tamaño. No las almacena. Pero funciona.
Trate de hacer el cambio a postgress pero hasta ahora sin buenos resultados; cambie el motor y el campo donde se almacena la imagen por bytea. Pero nada sin exito.
Los instrucciones que utilice son las siguientes:
- Code: Select all Expand view RUN
vRuta:="c:\fwh1501\bitmaps\jpg\surf.jpg"
vImag:=MemoRead( vRuta )
cSql := SQL ; // SQL is FWH command
INSERT INTO lyma_imagen ( pp_rutass, pp_imagen ) VALUES ( vRuta, MemoRead( vRuta ) )
msginfo(cSql)
TRY
oCn:Execute( cSql )
CATCH oError
FW_ShowAdoError(oCn)
END
Pero me sale un error desde ADO que dice... error de sintaxis
Alguien a tenido experiencia en esto?
Saludos