PDA

Ver la Versión Completa : Reconectar ADO con SQL


lunygar
10-01-2008, 10:45:43
Buenos días, llevo unos días intentano conseguir que cuando una conexión ADO con SQL se desconecta porque el servicio de SQLSERVER se ha parado, al reanudarse el servicio no consigo hacer que se me reconecte la conexión ADO para conseguir funcionar con normalidad. Si reinicio la aplicación si que funciona, pero creo que esa no será la solución.

Muchas grácias de antemano, y espero que se haya entendido mi problema y me deis una solución.

Saludos.

ElDioni
10-01-2008, 12:12:28
Como no se si ya has probado algo o si te refieres a un adoconnection o a un adoquery te digo algo que creo que puede funcionar.


//si es un adoconnection
adoconnection1.connected:=false;
adoconnection1.connected:=true;
//si es un adoquery
adoquery1.active:=false;
adoquery1.active:=true;


Espero que te sirva, y si no, vuelve a postear.

Neftali [Germán.Estévez]
10-01-2008, 12:12:45
...al reanudarse el servicio no consigo hacer que se me reconecte la conexión ADO para conseguir funcionar con normalidad.

¿Porqué no lo consigues? ¿No te conecta? ¿Algun error?
¿Si cierras la conexión (ADOConnection) y la vuelves a abrir no funciona?

lunygar
17-01-2008, 10:44:31
Buenas, la verdad es que he hecho mil pruebas y no se como conseguirlo. Seguro que será una chorrada...

Bueno, intento explicarme de nuevo.

Yo tengo una conexión ADO funcionando con mi programa en Delphi y SQL Server. En un momento dado paro el servicio de Sql Server, y a consecuencia pierdo la conexión a la BBDD. Hasta aquí bien. Ahora bien, me gustaría que cuando inicio otra vez el servicio poder reconectar el ADO y que la aplicación siga funcionando como antes de ser parado dicho servicio.

NOTA: La aplicación en ningún momento la detengo, por eso quiero recuperar la conexión y no se como.

Muchas grácias de nuevo, sois unos jefes.

Neftali [Germán.Estévez]
17-01-2008, 11:47:12
La aplicación en ningún momento la detengo, por eso quiero recuperar la conexión y no se como.

Prueba a deconectar la conexion ADO y volverla a conectar.

lunygar
17-01-2008, 13:28:56
Muchas grácias, al final lo he solucionado creando otro ADOConnection y exclusivamente para sólo un ADOQuery.

Lo que pasaba es que antes utilibaza un ADOConnection para todos los ADOQuery y cuando lo ponía en false como me comentábais, me afectaba a los demás ADOQuery de la aplicación y se acababa fastidiando todo.

Ahora ya consigo que cuando vuelve el servicio acabe reconectando.


Muchas grácias a todos, como siempre me habéis ayudado a que me ilumine.


SALU2

rafita
17-01-2008, 13:46:09
solo quería añadir unos comentarios:

1º) si paras el servicio es normal que no te funcione ninguna ADOQuery, con independencia de si dependen todas de la misma ADOConnection o no.

2º) una vez que lo has solucionado podía poner aquí cómo lo has hecho por si acaso alguien tiene ese mismo problema

Saludos

lunygar
17-01-2008, 16:23:44
A ver, ya he comentado que mi solución es crear un solo ADOConnection para ese ADOQuery, entonces cuando para el servicio, normal que no responda. Ahora bien, al arrancar el servicio para volver a conectar hay que poner el ADOConnection.Connected en False y después volver a ponerlo en True y se soluciona el tema.

No se me solucionaba, porque utilizaba el mismo ADOConnection para más de ADOQuery, entonces Al poner un ADOQuery.Connection.Connected en False, me influía en todos. Total, que me petaba la aplicación por todos lados.

Espero haberme explicado.

Grácias.