Página 1 de 1

MySQL DataSource Ocupado

Publicado: Mar Ene 13, 2009 10:22 pm
por Diego Ferreira
Saludos el hecho esta que tengo un timer chequeando si hay nuevos registros
en una tabla cada 10 segundo y realiza un DataSourse:Execute( SELECT... ) y
a la vez en el mismo formulario tengo un dbbrowse que cuando se ejecuta su
on change realiza tambien un DataSourse:Execute( SELECT... ). El error es
muy esporadico solo cuando coincide el tiempo del timer y se esjecyta su
evento y cuando se ejetuta el onchange del browse a la vez aparentemente es
xq el datasource esta ocupado en ese momento y no puede realizar el
EXECUTE.. Ahora... ¿Hay una manera de saber si el datasouce esta ocupado en
ese momento para que no me de un error en runtime?
El Msj es el Siguiente.... ---->
Subsistema: MySQL
Código de error: -1
Estado: .T.
Descripción: Commands out of sync; you can't run this command now
Operación: OFRMFACFACTURACION:DBBROWSE_SERVICIOCHANGE
Argumentos: [ 1] = Tipo: C Valor: SELECT SUM(Cantidad) AS Cantidad
FROM TmpItems WHERE Compania = '01' AND Mesa ='CAJA 1' AND Confirmado = '1'
Fichero:
Código error SO: 0
Gracias de Antemano...!

MySQL DataSource Ocupado

Publicado: Mar Ene 13, 2009 10:49 pm
por notengo
Diego,
> EXECUTE.. Ahora... ¿Hay una manera de saber si el datasouce esta ocupado en
> ese momento para que no me de un error en runtime?
Lo mejor serí­a que utilices un semáforo para evitar el error.
Puedes añadir una DATA lDSBusy en tu formulario y dentro del método que
invoca el Timer ponerlo a .T. hasta que termine la carga de datos y lo
vuelva a poner a .F. En el evento OnChange comprueba que si está a .T. no
haga nada y espere a la próxima actualización de datos.
Saludos,
José Lalí­n

MySQL DataSource Ocupado

Publicado: Mié Ene 14, 2009 12:25 am
por Diego Ferreira
Gracias lo Implementare...!!!!
"José Lalín" <notengo@correo.com> escribió en el mensaje
news:496d0cd4$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>
> Diego,
>
>> EXECUTE.. Ahora... ¿Hay una manera de saber si el datasouce esta ocupado
>> en ese momento para que no me de un error en runtime?
>
> Lo mejor sería que utilices un semáforo para evitar el error.
>
> Puedes añadir una DATA lDSBusy en tu formulario y dentro del método que
> invoca el Timer ponerlo a .T. hasta que termine la carga de datos y lo
> vuelva a poner a .F. En el evento OnChange comprueba que si está a .T. no
> haga nada y espere a la próxima actualización de datos.
>
> Saludos,
> José Lalín