Nuevo FWH 16.06

Nuevo FWH 16.06

Postby Antonio Linares » Sun Aug 07, 2016 7:04 am

regards, saludos

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

Re: Nuevo FWH 16.06

Postby cnavarro » Sun Aug 07, 2016 11:08 am

Por favor, descargue el fichero para usar el ejemplo mnu01.prg
Please download file image for use mnu01.prg sample

https://bitbucket.org/fivetech/fivewin- ... etechv.png

y ejemplo actualizado
and sample updated

https://bitbucket.org/fivetech/fivewin- ... /mnu01.prg
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Nuevo FWH 16.06

Postby Antonio Linares » Tue Aug 16, 2016 10:34 am

FWH 16.06 build 2 ya está disponible:

viewtopic.php?p=193101#p193101
regards, saludos

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

Re: Nuevo FWH 16.06

Postby luisduque » Wed Aug 31, 2016 5:28 am

Maestro Antonio

1. libmysql.dll en 32bits y 64bits se debe llamar asì hay que cambiar de nombre a libmysql64.dll por libmysql.dll para poder trabajar en 64bits existe alguna manera de trabajar con libmysql.dll y libmysql64.dll en la misma carpeta asi como se trabaja freeimage.dll y freeimage64.dll.

2. coloco un ejemplo sencillo donde cada vez que se revisa una procedimiento se incrementa la memoria, es como si no cerrara el oRcs coloco un ejemplo
cada vez que entra a CalCtaAntDH se incrementa la memoria.

Code: Select all  Expand view

  oRcs := oConexion:Query("Select * From MaesCont Order by NroAsi")
    If oRcs==Nil
        Return(.f.)
    EndIf
   While !oRcs:Eof()

        fNroAsi := oRcs:Fields("NROASI"):Value
      fFecAsi := oRcs:Fields("FECASI"):Value

        fTotDeb := 0
        fTotHab := 0

       oRcsC := oConexion:Query("Select * From DetaCont Where NroAsi="+str(fNroAsi))
        If oRcsC==Nil
            Return(.f.)
        EndIf
        While !oRcsC:Eof()

          fCodCta := oRcsC:Fields("CODCTA"):Value
       fDebe   := oRcsC:Fields("DEBE"):Value
        fHaber  := oRcsC:Fields("HABER"):Value

            fTotDeb += fDebe
            fTotHab += fHaber

            CalCtaAntDH(fCodCta,fDebe,fHaber,"+")

           oRcsC:MoveNext()
        EndDo

        oRcs:Fields("TotDeb"):Value := fTotDeb
        oRcs:Fields("TotHab"):Value := fTotHab

        oRcs:Save()

       oRcs:MoveNext()
    EndDo
//
Procedure CalCtaAntDH(fCodCta,fDebe,fHaber,fSumRes)

    oRcsA := oConexion:Query("select * from cuentas where `codcta`='"+fCodCta+"'")
    If oRcsA==Nil
        Return(.f.)
    EndIf
    If !oRcsA:Eof()
        If !Empty(fDebe)
           If fSumRes = "+"
                oRcsA:Fields("Debe"):Value  += fDebe
            Else
                oRcsA:Fields("Debe"):Value  -= fDebe
            EndIf
        EndIf

        If !Empty(fHaber)
           If fSumRes = "+"
                oRcsA:Fields("Haber"):Value += fHaber
            Else
                oRcsA:Fields("Haber"):Value -= fHaber
            EndIf
        EndIf

        oRcsA:Save()
    EndIf  

    oRcsA:Close()

 


El mismo resultado con la versión 16.05 y 16.06

Nota: Con ADO no aumenta la memoria en procesos de windows, con ese mismo ejemplo
Fivewin 16.11
Harbour 3.2.0
Visual Studio 2015 community
MariaDb/MySql

Ing. MSc. Luis Duque
http://www.accasoft.net
luisduque
 
Posts: 133
Joined: Mon May 12, 2008 4:13 pm
Location: Venezuela

Re: Nuevo FWH 16.06

Postby Antonio Linares » Wed Aug 31, 2016 8:52 am

Luis,

Si revisas la carpeta FWH\DLL verás que estan ambas DLLs allí, y el nombre de la de 64 bits termina el 64
regards, saludos

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

Re: Nuevo FWH 16.06

Postby luisduque » Wed Aug 31, 2016 4:21 pm

Maestro Antonio

Si claro está, las dos librerias dll libmysql.dll y libmysql64.dll sin embargo cuando tengo mi aplicacion tanto de 32bits y 64bits en la misma carpeta copio las dos DLL, abro mi aplicacion en 32bits y perfecto el automaticamente abre la DLL libmysql.dll y funciona perfecto. El detalle es que al abrir mi aplicacion de 64bits da error porque el intenta es abrir libmysql.dll y no lo hace con libmysql64.dll, que sucede le cambio de nombre a libmysql64.dll por libmysql.dll abro de nuevo mi aplicacion y abre perfecto.. El error es que la DLL libmysql64.dll no la reconoce con ese nombre sino con libmysql.dll ese es el error, por eso hago la comparación con freeimage.dll y freeimage64.dll que se llaman bien cuando se abre una aplicacion en 32bits(freeimage.dll) y 64bits(freeimage64.dll).

Ahora lo otro importante es el aumento de memoria que se genera al abrir varias veces una tabla de mysql.


Muchas Gracias Maestro y estoy atento.
Fivewin 16.11
Harbour 3.2.0
Visual Studio 2015 community
MariaDb/MySql

Ing. MSc. Luis Duque
http://www.accasoft.net
luisduque
 
Posts: 133
Joined: Mon May 12, 2008 4:13 pm
Location: Venezuela

Re: Nuevo FWH 16.06

Postby Antonio Linares » Wed Aug 31, 2016 6:13 pm

Luis,

Se lo acabo de comentar a Mr. Rao para saber su opinión

Te mantendré informado de lo que me conteste
regards, saludos

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

Re: Nuevo FWH 16.06

Postby nageswaragunupudi » Thu Sep 01, 2016 4:49 pm

My advice about DLLs

Copy fwh\dll\libmysql.dll as <exefolder>\libmysql.dll // 32-bit
Copy fwh\dll\libmariadb64.dll as <exefolder>\libmariadb.dll // for 64-bit

Build 32-bit application linking \fwh\lib\libmysql.lib
Build 64-but application linking \fwh\lib\libmariadb64.lib

Now both 32-bit and 64-bit Exes work from the same folder without renaming the dlls.
Please note that both libmysql.dll and libmariadb.dll are totally identical in functionality.

This is exactly what we have done for executing and testing out mysql samples in fwh\samples folder with all 32-bit and 64-bit compilers.

2. coloco un ejemplo sencillo donde cada vez que se revisa una procedimiento se incrementa la memoria, es como si no cerrara el oRcs coloco un ejemplo
cada vez que entra a CalCtaAntDH se incrementa la memoria.


Thank you. We are carefully examining the issue and do the needful soon.

New utility methods in 16.07:

We have provided new method:
Code: Select all  Expand view

METHOD UpdateSummary( cMaster, cMasKey, acMasCols,   ;
                      cTrnTable, cTrnKey, acTrnCols, ;
                      cTrnWhere, cOperator )

function MYSQL_UpdateSummarySQL( cMaster, cMasKey, acMasCols,   ;
                                 cTrnTable, cTrnKey, acTrnCols, ;
                                 cTrnWhere, cOperator )

 

to assist our users to easily accomplish the tasks as in the sample posted.
For instance, the above functionality can be accomplished by
Code: Select all  Expand view

oCn:UpdateSummary( "maescont", "nroasi", "totdeb,tothab", ;
                   "detacont", "nroasi", "debe,haber" )  )
oCn:UpdateSummary( "cuentas", "codcta", "debe,haber", ;
                   "detacont", "codcta", "debe,haber" )  )
 


Calling these methods internally generate the following SQL statements and execute.
Code: Select all  Expand view

UPDATE `maescont` m
LEFT OUTER JOIN
(
SELECT `nroasi`, SUM( debe ) AS t01, SUM( haber ) AS t02
FROM `detacont`
GROUP BY `nroasi`
) t
ON m.nroasi = t.nroasi
SET m.totdeb = IFNULL( t.t01, 0 ),
    m.tothab = IFNULL( t.t02, 0 )
 


and

Code: Select all  Expand view

UPDATE `cuentas` m
LEFT OUTER JOIN
(
SELECT `codcta`, SUM( debe ) AS t01, SUM( haber ) AS t02
FROM `detacont`
GROUP BY `codcta`
) t
ON m.codcta = t.codcta
SET m.debe = IFNULL( t.t01, 0 ),
    m.haber = IFNULL( t.t02, 0 )
 

This works faster with least network traffic.
We hope the new utility functions/method will be useful to our users.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10248
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Nuevo FWH 16.06

Postby luisduque » Thu Sep 01, 2016 9:47 pm

G. N. Rao.

Gracias con el tema de las DLL, libmysql.dll la uso para 32 bits y libmariadb.dll para 64bits (libmariadb64.dll camn¿bié de nombre) Solucionado con la recomendación de G. N. Rao


Lo del consumo de memoria si es muy importante, el ejemplo que envié es solo un simple ejemplo pero no es lo que uso, sino que se me ocurrió para poder mostrar un ejemplo facil.

Y el consumo de memoria es en 32bits y 64 bits.
Fivewin 16.11
Harbour 3.2.0
Visual Studio 2015 community
MariaDb/MySql

Ing. MSc. Luis Duque
http://www.accasoft.net
luisduque
 
Posts: 133
Joined: Mon May 12, 2008 4:13 pm
Location: Venezuela

Re: Nuevo FWH 16.06

Postby Antonio Linares » Fri Sep 02, 2016 9:50 am

Luis,

Necesitamos un ejemplo pequeño y auto contenido que reproduzca el consumo de memoria que comentas, gracias
regards, saludos

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

Re: Nuevo FWH 16.06

Postby luisduque » Fri Sep 02, 2016 2:59 pm

Maestro Antonio en el caso de la nueva clase TMySql el consumo se produce inmediato

Entro al sistema ejecuto tal cual como envié el ejemplo al principio y empieza el aumento, simplemente cada vez que se abre un query empieza el aumento de memoria
Fivewin 16.11
Harbour 3.2.0
Visual Studio 2015 community
MariaDb/MySql

Ing. MSc. Luis Duque
http://www.accasoft.net
luisduque
 
Posts: 133
Joined: Mon May 12, 2008 4:13 pm
Location: Venezuela


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 82 guests