Grabar un objeto

Grabar un objeto

Postby infosys » Tue Jul 04, 2017 4:34 pm

Es posible grabar un objeto y sus propiedades en un archivo o en una campo de tabla sql server o cualquier otra ?, por ejemplo hago un grafico estadistico con chart de owc, el operador lo modifica visualmente y quiero que los cambios queden grabados para recuperarlos en otro momento y mostrar nuevamente el grafico con las modificaciones s
realizadas.
Les agradecería si alguien puede orientarme al respecto.

Saludos
infosys
 
Posts: 59
Joined: Tue Jan 31, 2006 1:32 pm

Re: Grabar un objeto

Postby Carles » Tue Jul 04, 2017 4:41 pm

Hoa,

Repasa la clase fwdbg.prg -> function Object2Data( o )
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: 1101
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Re: Grabar un objeto

Postby infosys » Tue Jul 04, 2017 5:02 pm

Carles, gracias por la información, veo que hay opciones, el problema es que en mi version de fivewin no tengo ese codigo, es posible publicarlo aqui ?
infosys
 
Posts: 59
Joined: Tue Jan 31, 2006 1:32 pm

Re: Grabar un objeto

Postby Carles » Tue Jul 04, 2017 5:07 pm

Hola,

Si se lo pides al Sr. Linares seguro que te la envia...
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: 1101
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Re: Grabar un objeto

Postby Antonio Linares » Thu Jul 06, 2017 9:25 am

Desarrollado por nuestro querido Carles, menuda barba te has dejado! :-)

Code: Select all  Expand view
FUNCTION Object2Data( oObject )
*-------------------------------------
    LOCAL aDict := {}
    LOCAL aIVar := {}
    LOCAL bError, oError
    LOCAL cx
    LOCAL uData
    LOCAL nLen

    IF ValType( oObject ) <> 'O'
       RETU aIVar
    ENDIF

    nLen   := Len( aDict := ASort( __ClassSel( oObject:ClassH )))
    bError := ErrorBlock( {|oError| ErrorObject( oError )} )

    BEGIN SEQUENCE

        FOR cx = 1 TO nLen

          IF !( StrChar( aDict[cx], 1) == '_')  // !Method

             IF Ascan( aDict, Left( "_" + aDict[cx], 10 ) ) == 0

*                 AADD( aMeth, aDict[cx] + '()'  )

               ELSE  // Var

                uData := OSend( oObject, aDict[cx] )

                Aadd( aIvar, { aDict[cx], ValType( uData ), uData, oObject } )

             ENDIF
     
          ENDIF

        NEXT

      RECOVER USING oError

           Eval( bError, oError )

    END SEQUENCE

    ErrorBlock( bError )

    IF Len( aIvar ) == 0
       Aadd( aIvar, { "No DATA", "", "" } )
    ENDIF

RETU aIVar
 
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41366
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Grabar un objeto

Postby hmpaquito » Thu Jul 06, 2017 11:33 am

Harbour, ese gran desconocido, tiene dos funciones a tal fin:

hb_Serialize() y hb_Deserialize()

Code: Select all  Expand view
  HB_SERIALIZE( <xData>, [ <lNumSizes> = .F. ], ;
                 [ <cCdpIn> = HVMCP ], [ <cCdpOut> = HVMCP ] ) -> cData
   HB_DESERIALIZE( <cData>, ;
                   [ <cCdpIn> = HVMCP ], [ <cCdpOut> = HVMCP ] ) -> xData
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 36 guests