Meter con Mysql

Post Reply
User avatar
JoseAlvarez
Posts: 807
Joined: Sun Nov 09, 2014 5:01 pm

Meter con Mysql

Post 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?
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
Armando
Posts: 3249
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: Meter con Mysql

Post 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
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
leandro
Posts: 1688
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: Meter con Mysql

Post by leandro »

Pues creo que solo tienes que recorrer el recorset , el resto es un meter normal

Code: Select all | Expand

        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
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
JoseAlvarez
Posts: 807
Joined: Sun Nov 09, 2014 5:01 pm

Re: Meter con Mysql

Post 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.
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
cmsoft
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Meter con Mysql

Post 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.
User avatar
JoseAlvarez
Posts: 807
Joined: Sun Nov 09, 2014 5:01 pm

Re: Meter con Mysql

Post 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.
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
cnavarro
Posts: 6552
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Meter con Mysql

Post by cnavarro »

Para ir informando al usuario de lo que la aplicación está haciendo te recomiendo el uso de la function MsgRun
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
Post Reply