ASave() que tipo de valor retorna

ASave() que tipo de valor retorna

Postby horacio » Thu Dec 16, 2010 12:31 am

Tengo una aplicación que utilíza muchos archivos que graban arrays en disco con esta función. Estoy portandolo a MySQL y me gustaría guardar estos arrays en el motor. Si verifico el tipo de dato que devuelve ASave() con type() o ValType() me devuelven "U", pero abrá en MySQL algún tipo de dato que lo soporte ??. Alguien sabe..., Gracias de antemano
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: ASave() que tipo de valor retorna

Postby Daniel Garcia-Gil » Thu Dec 16, 2010 12:48 am

Horacio

http://wiki.fivetechsoft.com/doku.php?id=fivewin_funcion_asave

retorna una cadena

este es un a ejmeplo (tomado tambien del wiki de fivewin)
Code: Select all  Expand view

#include 'fivewin.ch'
 
//------------------------------------------------//
Function Main()
Local aData1,aData2,cBinData
 
   aData1:={"Tom","Dickenson","Harry"}
   cBinData:=ASave(aData1)  // Converts Array Data and to Binary and stores in cStr

   ? ValType( cBinData )
 
   aData2:=ARead(cBinData)  // Reads data from Binary and then converts back to Array
   MsgList(aData2)
   
 
Return nil
 
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: ASave() que tipo de valor retorna

Postby antolin » Tue Dec 28, 2010 10:25 am

Horacio, a lo mejor te interesa cambiar ASave() por ValToPrg()
Peaaaaaso de foro...
antolin
 
Posts: 492
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: ASave() que tipo de valor retorna

Postby carlos vargas » Tue Dec 28, 2010 5:28 pm

Esta es una version viejita de la funcion Val2PrgExp incluida con xharbour, uso esta viejita y no la version actual por alguna razon de peso que no recuedo ahora
si recuerdo que me toco buscar por muchos lugares para buscar esta version en particular, encontrandola en el cvs.

Code: Select all  Expand view

   //guardar en campo memo DESGLOSC un arreglo
   aDesgC := {{"100",15},{"50",10},{"20",7},{"10",3},{"5",8},{"1",12}}
   CAJA->DESGLOSC := Val2PrgExp( aDesgC )

  //recuperar
  aDesgC := NIL
  aDesgC := &( CAJA->DESGLOSC ) //precompila el arreglo contenido en el campo memo
  ?valtype(aDesgC), len(aDesgC)

 


Code: Select all  Expand view

FUNCTION Val2PrgExp( xVal )

   LOCAL cType := ValType( xVal )
   LOCAL aVar, cRet

   SWITCH cType

   CASE 'C'
      IF ! '"' IN xVal
         RETURN '"' + xVal + '"'
      ELSEIF ! "'" IN xVal
         RETURN "'" + xVal + "'"
      ELSEIF ( ! "[" IN xVal ) .AND. ( ! "]" IN xVal )
         RETURN "[" + xVal + "]"
      ELSE
         Throw( ErrorNew( "CSTR", 0, 3102, ProcName(), "Can't stringify", { xVal } ) )
         EXIT
      ENDIF
   CASE 'D'
      RETURN "sToD( '" + dToS( xVal ) + "' )"

   CASE 'L'
      RETURN IIF( xVal, ".T.", ".F." )

   CASE 'N'
      RETURN Ltrim( Str( xVal ) )

   CASE 'A'
      cRet := "{ "
      FOR EACH aVar IN xVal
         cRet += ( Val2PrgExp( aVar ) + ", " )
      NEXT
      IF cRet[ -2 ] == ','
         cRet[ -2 ] := ' '
      ENDIF
      cRet[ -1 ] := '}'
      RETURN cRet
   DEFAULT
      IF xVal == NIL
         cRet := "NIL"
      ELSE
         Throw( ErrorNew( "VALTOPRG", 0, 3103, ProcName(), "Tipo no soportado", { xVal } ) )
      ENDIF
   END

RETURN cRet
 
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1688
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 33 guests