Page 1 of 1

Meter con Mysql

PostPosted: Tue Mar 28, 2023 1:15 am
by JoseAlvarez
Hola a todos colegas,

¿Como se puede hacer un meter cuando se trabaja con mysql?

Por ejemplo necesito contar todas la ventas que ha tenido un articulo durante determinado periodo de tiempo, luego compararlo con el total de venta durante toda la vida en el sistema, y otras operaciones mas que tardan algo de tiempo y me gustaria ver un meter que indique el % ejecutado de la tarea.

Con dbf la cosa es sencillo, con mysql no veo como hacerlo.

¿Alguien me ayuda por favor?

Re: Meter con Mysql

PostPosted: Tue Mar 28, 2023 5:37 pm
by Armando
José:

Deduzco que alguna de las dos tablas es la primaria y la otra es la consultas para hacer la comparación, si es así
utiliza el meter en el DO WHILE de la tabla primaria.

Otro tip, es que uses la cláusula SUM de MySql para ahorrarte tiempo, solo para ahorro de tiempo.

Si pudieras poner un poco de código para poder apoyarte más.

Saludos

Re: Meter con Mysql

PostPosted: Wed Mar 29, 2023 1:54 am
by leandro
Pues creo que solo tienes que recorrer el recorset , el resto es un meter normal

Code: Select all  Expand view

        oMeter:nTotal = oRs:RecordCount()
        oMeter:Set( 0 )

        oRs:MoveFirst()
        nIni := cValToChar(Lin)
        Do While !oRs:Eof()

            //Las instrucciones dentro de ciclo
           
           
            oRs:MoveNext()
            nContador++
            oMeter:Set( nContador )
        EndDo


        oRs:close()
 


Espero te sirva

Re: Meter con Mysql

PostPosted: Wed Mar 29, 2023 5:48 pm
by JoseAlvarez
Muchas gracias leandro y armando.

Aun no tengo el codigo desarrollado para enviarlo como ejemplo, solo quise adelantarme a la duda por si acaso alguien ya lo ha hecho.

El problema es que no trabajo con do while, todo lo hago con consultas y subconsultas.

Cuando tenga el codigo listo, vuelvo a postear en esta mismo hilo, asi se verá más claro lo que quiero.

Un abrazo.

Re: Meter con Mysql

PostPosted: Wed Mar 29, 2023 7:15 pm
by cmsoft
Por lo que entiendo, José necesita que una vez lanzada la consulta Mysql, mientras va procesando, vaya dando el avance de cuantos registros va leyendo.
Si usas Dolphin, hay un codeblock que puede servir, pero nunca lo he usado, y no creo que de esa manera puedas obtener el avance de la consulta en el servidor.
Es bOnLoadQuery, habría que verlo.
Igualmente yo creo que si optimizas la base con indices para que la consulta no sea demasiado lenta, no vas a necesitar un Meter.
Una consulta similar, en una tabla con 1000000 de registros tarda 0.094 segundos, si los indices están bien definidos, no creo que necesites mostrar el avance.

Re: Meter con Mysql

PostPosted: Wed Mar 29, 2023 8:35 pm
by JoseAlvarez
cmsoft wrote:Por lo que entiendo, José necesita que una vez lanzada la consulta Mysql, mientras va procesando, vaya dando el avance de cuantos registros va leyendo.
Si usas Dolphin, hay un codeblock que puede servir, pero nunca lo he usado, y no creo que de esa manera puedas obtener el avance de la consulta en el servidor.
Es bOnLoadQuery, habría que verlo.
Igualmente yo creo que si optimizas la base con indices para que la consulta no sea demasiado lenta, no vas a necesitar un Meter.
Una consulta similar, en una tabla con 1000000 de registros tarda 0.094 segundos, si los indices están bien definidos, no creo que necesites mostrar el avance.


Saludos estimado amigo césar.

Estas en lo correcto. Eso es lo que necesito.

Tambien estas en lo cierto cuando hablas de la velocidad de las consultas, pero yo trabajo un par de sistemas con los datos en la nube, y en mi pais el servicio de internet es uno de los peores del mundo.

A veces mientras el programa trata de conectar al servidor remoto, cae en un ciclo de espera donde el usuario queda en el limbo y no sabe si el programa se "colgó" o se esta ejecutando algo.

Seguramente el meter sera inmecesario en muchas ocasiones, pero en otras por la lentitud de la conexion podria dar al usuario por lo menos un indicio de que esta tratando de conectar, aunque no avance...

De todas maneras solo por saber como poder hacerlo ya me entró curiosidad, quizas se vuelva molesto que la mayoria de las veces el meter sea una molestia por lo rapido que se ejecute; ya veremos despues de eso si se deja o se quita.

No es malo aprender algo que pudiera hacer falta.

Gracias por tu idea.

Re: Meter con Mysql

PostPosted: Thu Mar 30, 2023 12:01 pm
by cnavarro
Para ir informando al usuario de lo que la aplicación está haciendo te recomiendo el uso de la function MsgRun