Imagenes en Mysql

Re: Imagenes en Mysql

Postby Daniel Garcia-Gil » Wed Jan 26, 2011 5:18 pm

Carles

acabo de probar con tu ejemplo he hice lo mismo...

usas harbour o xharbour?

cree una tabla en sel servidor de dolphin como la definiste en el post anterior

prueba y me comentas

gracias

Code: Select all  Expand view

#include 'fivewin.ch'

#define P_SERVER        'dolphintest.sitasoft.net'
#define P_USER          'test_dolphin'
#define P_PASSW         '123456'
#define P_PORT           3306
#define P_FLAGS          0
#define P_DBNAME        'dolphin_man'

STATIC oDb

*--------------
FUNCTION Main()
*--------------
    LOCAL cFile, uData, cSql

    IF !ConectaDb()
       RETU NIL
    ENDIF

    cFile := cGetFile( '*.*' )

    IF !File( cFile )
       RETU NIL
    ENDIF

    uData := D_ReadFile( cFile )
    uData := Val2Escape( uData )
    uData := ClipValue2Sql( uData )

    cSql  := "INSERT INTO image SET data = " + uData

    MsgInfo( oDb:execute( cSql ) )

RETU NIL

*-------------------
FUNCTION ConectaDb()
*-------------------

   oDb := TDolphinSrv():New( P_SERVER, P_USER, P_PASSW, P_PORT, ;
                             P_FLAGS,  P_DBNAME, ;
                             {| oServer, nError, lInternal | GetError( oServer, nError, lInternal  ) } )

RETU !oDb:lError

*-----------------------------------------------------
STATIC FUNCTION GetError( oServer, nError, lInternal )
*-----------------------------------------------------
   LOCAL cText := ""

   cText += "Descripcio:" + Chr( VK_TAB ) + oServer:ErrorTxt() + CRLF
   cText += "Error No:  " + Chr( VK_TAB ) + ltrim(Str( nError )) + CRLF
   cText += "Internal:  " + Chr( VK_TAB ) + If( lInternal, "Yes", "No" ) + CRLF
   
   MsgAlert( cText, 'Error en conexio a MySql' )
   
RETU NIL
 
 
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Imagenes en Mysql

Postby Bayron » Wed Jan 26, 2011 6:19 pm

A mi me funcionó correctamente tambien...

Como puedo hacer para que este ejemplo muestre la imagen recien cargada, bajandola desde la base de datos???
=====>

Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com

FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate

FiveWin, One line of code and it's done...
User avatar
Bayron
 
Posts: 815
Joined: Thu Dec 24, 2009 12:46 am
Location: Philadelphia, PA

Re: Imagenes en Mysql

Postby Carles » Wed Jan 26, 2011 6:24 pm

Daniel,

Estare fuera hasta mañana noche. Probare el ejemplo y te cuento -> Gracias

Me puedes cuando puedas mandar tu exe (*.zop) a carles9000 arroba gmail.com

Yo uso la ultima de Harbour de Fivetech

(message from pocket pc)
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
User avatar
Carles
 
Posts: 1105
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Re: Imagenes en Mysql

Postby Willi Quintana » Wed Jan 26, 2011 8:45 pm

Hola
Si usas EAGLE1
Code: Select all  Expand view

/--------------------------------------------------------------------------------------------
Function GrabaImagen(oMySQL , cCodigo, cImagen)   // Handle de Conexion, Codigo, Ruta del archivo imagen
local oUpdate, cUpdate, lOk, cRegistro
lOk := .f.

cUpdate := "SELECT registro, cod_producto, imagen FROM imagenes WHERE cod_producto = '" + cCodigo + "' ORDER BY cod_producto"
oUpdate := SQLOpen(oMySQL, oUpdate, cUpdate)  // oUpdate := TMSQuery():New( oMySQL ) ; oUpdate:Open(cUpdate)

If oUpdate:Reccount() = 0
 cUpdate := "INSERT INTO imagenes (cod_producto) VALUES ('" + cCodigo + "')"
 If !SQLExec(oMySQL, cUpdate)            // oApp:oDb:Execute( cUpdate )
   MyClose(oUpdate)                      // oUpdate:Close()
   Return(lOk)
 EndIf
 oUpdate:Refresh()  // recargamos el objeto contenedor de datos
 If MyKFindS(oUpdate, cCodigo, 2, .t.) = 0  // buscador binario que ubica el registro correspondiente
   Return(lOk)
 EndIf
Endif

cRegistro := MyCampo(oUpdate, "registro")   // oUpdate:registro  cargamos el numero de registro de la tabla

cUpdate := "UPDATE imagenes SET imagen = '" + oUpdate:ReadFromFile(cImagen) + "' WHERE registro = " + STR(cRegistro) + " "  // oUpdate:WriteToFile( 3, oBuff )  // almacenamos la imagen en el campo numero 3 que es BLOB
lOk := SQLExec(oMySQL, cUpdate)   // oApp:oDb:Execute( cUpdate )

MyClose(oUpDate)   // oUpdate:Close()
Return( lOk )

//--------------------------------------------------------------------------------------------
Function VerImagen(oMySQL, cCodigo, oImagen)
local cBusca, oBusca, cMImagen
cBusca := "SELECT registro, imagen FROM imagenes WHERE cod_producto = '" + cCodigo + "'"
oBusca := SQLOpen(oMySQL, oBusca, cBusca)            // oUpdate := TMSQuery():New( oMySQL ) ; oUpdate:Open(cUpdate)

If oBusca:Reccount() = 0
  ClearImage(oImagen)           //PalBmpFree( oImgagen:hBitMap, oImgagen:hPalette ); oImgagen:hBitmap := 0; oImgagen:hPalette := 0 ; oImgagen:cResName := NIL; oImgagen:cBmpFile := NIL; oImgagen:Refresh()
  oImagen:SETBMP("NOIMAGEN")    // cambia la imagen en la visualizacion
  MyClose(oBusca)               // oBusca:Close()
  Return(oImagen)
EndIf

cMImagen := MyCampo(oBusca, "imagen")  // oBusca:imagen
MyClose(oBusca)                        // oBusca:Close()

ClearImage(oImagen)
oImagen:LoadFromMemory(cMImagen)       // de freeimagen, cargas la imagen al objeto
oImagen:Refresh()

Return(oImagen)
 
User avatar
Willi Quintana
 
Posts: 1003
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: Imagenes en Mysql

Postby Willi Quintana » Wed Jan 26, 2011 8:51 pm

Con TDolphin:
Code: Select all  Expand view

//--------------------------------------------------------------------------------------------
Function GrabaImagen(oMySQL , cCodigo, cImagen)
local oUpdate, cUpdate, cChr, cRegistro

cChr := Val2Escape( D_ReadFile(cImagen ) )
cUpdate := "SELECT registro FROM imagenes WHERE cod_producto = '" + cCodigo + "'"
oUpdate := oMySQL:Query(cUpdate, .t.)
If oUpdate:Reccount() = 0
   cUpdate := "INSERT INTO imagenes (cod_producto, imagen) VALUES ('" + cCodigo + "', '" + cChr + "')"
  Else
   cRegistro := ALLTRIM(STR(MyCampo(oUpdate,"registro"),15,0))
   cUpdate := "UPDATE imagenes SET imagen = '" + cChr + "' WHERE registro = " + cRegistro
EndIf
oUpdate:End()
Return( SQLExec(oMySQL, cUpdate ) )

//--------------------------------------------------------------------------------------------
Function VerImagen(oMySQL, cCodigo, oImagen)
local cBusca, oBusca, cIMagen, cChr, cFile, oUpdate, cMImagen
cBusca := "SELECT registro, imagen FROM imagenes WHERE cod_producto = '" + cCodigo + "'"
oBusca := oMySQL:Query(cBusca, .t.)

If oBusca:Reccount() = 0
  ClearImage(oImagen)
  oImagen:SETBMP("NOIMAGEN")
  oBusca:End()
  Return(oImagen)
EndIf

cFile   := "img000.000"
cMImagen := MyCampo(oBusca, "imagen")
oBusca:End()

ClearImage(oImagen)
oImagen:LoadFromMemory(cMImagen)
oImagen:Refresh()

Return(oImagen)

 
User avatar
Willi Quintana
 
Posts: 1003
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: Imagenes en Mysql

Postby Bayron » Wed Jan 26, 2011 9:01 pm

Gracias Willi...
=====>

Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com

FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate

FiveWin, One line of code and it's done...
User avatar
Bayron
 
Posts: 815
Joined: Thu Dec 24, 2009 12:46 am
Location: Philadelphia, PA

Re: Imagenes en Mysql

Postby Carles » Thu Jan 27, 2011 8:42 am

Hola a todos,

Continuando con el ejemplo, funciona perfectamente en tres servidores qtengo colgados. SOLO me falla cuando las pruebas las realizo en local (localhost). Uso el Xampp y hasta ahora me funciona perfectamente para todo tipo de pruebas. Visto lo visto sera una cuestion de configuracion del MySql y NO de TDolphin. Voy a ver si pillo diferencias en la config. Si conoceies algun parametro ya lo direis.

Gracias a todos.
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
User avatar
Carles
 
Posts: 1105
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 27 guests