Página 1 de 1
Re: Problema con ADO
Publicado: Jue Nov 17, 2011 7:55 am
por jose.luis
Pedro,
Veo que ese código está dentro de un timer.
Además usas una data del formulario para hacer la conexión.
A veces me he encontrado que con tiempos 'cortos' una sentencia de sql aún
no se ha terminado cuando empieza la siguiente.
Si el timer tiene poco tiempo de intervalo.... pudiera darse el caso que el
timer haya terminado justo cuando el nuevo timer esté haciendo el
getrows....
Si no es eso... entonces tienes algún tipo de microcorte entre el open del
query y el getrows.
Otra posibilidad es que tOleAuto de xHarbour no 'aguante' tanto tiempo en
marcha....

Saludos,
José Luis Capel
PD: ¿Vendrás a la reunión en Miranda de Ebro?
"Ignacio Ortiz de Zúñiga" escribió en el mensaje de
noticias:4ec3e18f$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Buenos días,
El objeto ADO no ha sido correctamente instanciado.
Probablemente se haya producido un error de conexión.
Un saludo
--
Ignacio Ortiz de Zúñiga
[Equipo de Xailer/Xailer team]
http://www.xailer.com
http://www.xailer.info
Re: Problema con ADO
Publicado: Jue Nov 17, 2011 9:36 am
por xhermita
Jose,
Tengo la precaución de poner el ::oTimer1:lEnabled := .F. al entrar en
el evento Timer, precisamente para evitar la doble ejecución.
Como veras en el código le he añadido un ProcessMessages() después de la
apertura del oAdoDataSource, precisamente para darle tiempo a windows.
Y lo mas curioso es que no ejecuto la consulta si no esta el
oAdoDataSource conectado.
Es solo al hacer el getrows cuando da el error.
Me tiene descolocado, porque encima no consigo provocarlo yo, siempre lo
veo a posteriori, cuando el cliente me envía el error.log
He añadido un ProcessMessages() entre la apertura del ::oSQLQuery y el
:GetRow(), y haber que pasa.
PD: Me encantaría ir a Miranda de Ebro, concreten la fecha pronto para
conseguir pasajes baratos sin tener que viajar de pie en Raynair.
Saludos
Pedro Amaro
Re: Problema con ADO
Publicado: Jue Nov 17, 2011 3:15 pm
por jose.luis
Pedro,
Prueba a hacer algo parecido a esto:
METHOD onTimer() CLASS xxx
STATIC lOcupado := .F.
IF !lOcupado
lOcupado := .T.
// Pon el código del select... No hace falta los processmessages entre
el IF y el ENDIF (si lo necesitas lo pones después del ENDIF
lOcupado := .F.
ENDIF
RETURN NIL
Y ya me cuentas si esto te ha ayudado.
Saludos,
José Luis Capel
PD: Será a principios de primavera. Propón tu un fecha. Yo propuse para
Fallas.
"Pedro Amaro" escribió en el mensaje de
noticias:[email=4ec4c7cd@svctag-j7w3v3j....]4ec4c7cd@svctag-j7w3v3j....[/email]
Jose,
Tengo la precaución de poner el ::oTimer1:lEnabled := .F. al entrar en
el evento Timer, precisamente para evitar la doble ejecución.
Como veras en el código le he añadido un ProcessMessages() después de la
apertura del oAdoDataSource, precisamente para darle tiempo a windows.
Y lo mas curioso es que no ejecuto la consulta si no esta el
oAdoDataSource conectado.
Es solo al hacer el getrows cuando da el error.
Me tiene descolocado, porque encima no consigo provocarlo yo, siempre lo
veo a posteriori, cuando el cliente me envía el error.log
He añadido un ProcessMessages() entre la apertura del ::oSQLQuery y el
:GetRow(), y haber que pasa.
PD: Me encantaría ir a Miranda de Ebro, concreten la fecha pronto para
conseguir pasajes baratos sin tener que viajar de pie en Raynair.
Saludos
Pedro Amaro
Re: Problema con ADO
Publicado: Jue Nov 17, 2011 3:30 pm
por xhermita
A mi la fecha me da igual, soy autonomo, mi horario es flexiiiiiiiible.
Lo que necesito es saber la fecha con por lo meno 2 meses de antelación.
Un saludo
PD: Lo he instalado con las modificaciones que te indique y voy ha
tenerlo un par de días a prueba en el cliente, si falla lo probare como
me indicas, Gracias
El 17/11/2011 14:15, José Luis Capel escribió:
> Pedro,
>
> Prueba a hacer algo parecido a esto:
>
> METHOD onTimer() CLASS xxx
>
> STATIC lOcupado := .F.
>
> IF !lOcupado
> lOcupado := .T.
>
> // Pon el código del select... No hace falta los processmessages entre
> el IF y el ENDIF (si lo necesitas lo pones después del ENDIF
>
> lOcupado := .F.
> ENDIF
>
>
> RETURN NIL
>
>
> Y ya me cuentas si esto te ha ayudado.
>
> Saludos,
> José Luis Capel
> PD: Será a principios de primavera. Propón tu un fecha. Yo propuse para
> Fallas.
>
>
>
>
>
> "Pedro Amaro" escribió en el mensaje de
> noticias:[email=4ec4c7cd@svctag-j7w3v3j....]4ec4c7cd@svctag-j7w3v3j....[/email]
>
> Jose,
>
> Tengo la precaución de poner el ::oTimer1:lEnabled := .F. al entrar en
> el evento Timer, precisamente para evitar la doble ejecución.
>
> Como veras en el código le he añadido un ProcessMessages() después de la
> apertura del oAdoDataSource, precisamente para darle tiempo a windows.
>
> Y lo mas curioso es que no ejecuto la consulta si no esta el
> oAdoDataSource conectado.
>
> Es solo al hacer el getrows cuando da el error.
>
> Me tiene descolocado, porque encima no consigo provocarlo yo, siempre lo
> veo a posteriori, cuando el cliente me envía el error.log
>
> He añadido un ProcessMessages() entre la apertura del ::oSQLQuery y el
> :GetRow(), y haber que pasa.
>
> PD: Me encantaría ir a Miranda de Ebro, concreten la fecha pronto para
> conseguir pasajes baratos sin tener que viajar de pie en Raynair.
>
> Saludos
> Pedro Amaro