Grabar un objeto

Post Reply
infosys
Posts: 57
Joined: Tue Jan 31, 2006 1:32 pm

Grabar un objeto

Post by infosys »

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 _ 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
User avatar
Carles
Posts: 937
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona
Contact:

Re: Grabar un objeto

Post by Carles »

Hoa,

Repasa la clase fwdbg.prg -> function Object2Data( o )
Salutacions, saludos, regards

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

https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
infosys
Posts: 57
Joined: Tue Jan 31, 2006 1:32 pm

Re: Grabar un objeto

Post by infosys »

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 ?
User avatar
Carles
Posts: 937
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona
Contact:

Re: Grabar un objeto

Post by Carles »

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..."

https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Grabar un objeto

Post by Antonio Linares »

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

Code: Select all

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
hmpaquito
Posts: 1200
Joined: Thu Oct 30, 2008 2:37 pm

Re: Grabar un objeto

Post by hmpaquito »

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

hb_Serialize() y hb_Deserialize()

Code: Select all

   HB_SERIALIZE( <xData>, [ <lNumSizes> = .F. ], ; 
                 [ <cCdpIn> = HVMCP ], [ <cCdpOut> = HVMCP ] ) -> cData 
   HB_DESERIALIZE( <cData>, ; 
                   [ <cCdpIn> = HVMCP ], [ <cCdpOut> = HVMCP ] ) -> xData
Post Reply