In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

MySQL DataSource Ocupado

Foro público de Xailer en español
Responder
Diego Ferreira
Mensajes: 148
Registrado: Mar Dic 18, 2007 4:39 pm

MySQL DataSource Ocupado

Mensaje 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...!
notengo
Mensajes: 417
Registrado: Vie Oct 12, 2007 1:29 pm

MySQL DataSource Ocupado

Mensaje 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
Diego Ferreira
Mensajes: 148
Registrado: Mar Dic 18, 2007 4:39 pm

MySQL DataSource Ocupado

Mensaje 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
Responder