ODBC como saber si la conexcion esta activa.

1,141 views
Skip to first unread message

mpulla

unread,
Sep 9, 2011, 6:11:33 PM9/9/11
to Comunidad de Visual Foxpro en Español
Buen dia.

Estoy por trabajar con SQL Server Native Client 10.0 ODBC.

Tengo un objeto colgado en el _screen donde almaceno el manejador de
la conexion, necesito saber si la el manejador esta activo o si se
cayo la conexcion para volver a realizar la conexcion.

Tengo VFP 9.0 SP2 y Sql Server 2008 express

Saludos.
Mauricio Pulla
Cuenca-Ecuador

Luis Mata

unread,
Sep 9, 2011, 6:18:36 PM9/9/11
to Comunidad de Visual Foxpro en Español
La transaccion avisa:
r=Sqlexec()
Obviamente si ya se desconecto no va a pasar ni a balas la transacción ni nada, evalúa cada transacción, aunque no debería de pasar mucho, a menos que haya deficiencia de la red, saturación de VPN, y si es constante la caída ya hay un problema que atenta a la integridad de tus datos, ahí si hay que tomar medidas....
 


logo2 Mata Figueroa, Luis A.
Procesos, Tecnología de la Información y telecomunicaciones
TELF: (00 51 1) 617-4613
RPC : (00 51) 993597297
FAX : (00 51 1) 617-4601
lm...@cclf.com.pe
www.cclf.com.pe
imgfrm siguenos-fb

logo2[3].png
imgfrm[3].png
siguenos-fb[3].gif

mpulla

unread,
Sep 9, 2011, 6:52:35 PM9/9/11
to Comunidad de Visual Foxpro en Español
Hola Luis.

Trabajo con ADO conectandome y desconectandome de esta manera.

LOCAL lcErrMsg As String, loException As Exception, llCnnClose As
Logical, loCad As cadado OF "c:\vfp\work\toolset\libs\adapter.vcx"
[Select * From Usuario]

loCad = CREATEOBJECT('CadAdo')
loCad.Alias = 'UsuarioLst'

llCnnClose = _Screen.odBCTALK.oCnn.State = 0
If llCnnClose
IF !_Screen.oDBCTALK.CnnOpen()
RETURN .F.
ENDIF
EndIf

TRY
loCad.CursorFill(,,, _Screen.oDBCTALK.oCnn.Execute(lcSql))
loCad.CursorDetach()
CATCH TO loException
THROW loException
FINALLY
IF llCnnClose And _Screen.oDBCTALK.oCnn.State > 0
_Screen.oDBCTALK.CnnClose()
ENDIF
ENDTRY

De esta manera se si la conexcion debe cerarse o no, como harias esto
con ODBC?

Tengo VFP 9.0 SP2 y Sql Server 2008 express

Saludos.
Mauricio Pulla.
Cuenca-Ecuador


On 9 sep, 17:18, "Luis Mata" <lm...@cclf.com.pe> wrote:
> La transaccion avisa:
> r=Sqlexec()
> Obviamente si ya se desconecto no va a pasar ni a balas la transacción ni nada, evalúa cada transacción, aunque no debería de pasar mucho, a menos que haya deficiencia de la red, saturación de VPN, y si es constante la caída ya hay un problema que atenta a la integridad de tus datos, ahí si hay que tomar medidas....
>
> --------------------------------------------------------------------------------
>
>         Mata Figueroa, Luis A.
>       Procesos, Tecnología de la Información y telecomunicaciones
>       TELF: (00 51 1) 617-4613
>       RPC : (00 51) 993597297
>       FAX : (00 51 1) 617-4601
>       lm...@cclf.com.pe
>      www.cclf.com.pe 
>
> From: mpulla
> Sent: Friday, September 09, 2011 5:11 PM
> To: Comunidad de Visual Foxpro en Español
> Subject: [vfp] ODBC como saber si la conexcion esta activa.
>
> Buen dia.
>
> Estoy por trabajar con SQL Server Native Client 10.0 ODBC.
>
> Tengo un objeto colgado en el _screen donde almaceno el manejador de
> la conexion, necesito saber si la el manejador esta activo o si se
> cayo la conexcion para volver a realizar la conexcion.
>
> Tengo VFP 9.0 SP2 y Sql Server 2008 express
>
> Saludos.
> Mauricio Pulla
> Cuenca-Ecuador
>
>  logo2[3].png
> 16 KVerDescargar
>
>  imgfrm[3].png
> 59 KVerDescargar
>
>  siguenos-fb[3].gif
> 2 KVerDescargar

Walter R. Ojeda Valiente

unread,
Sep 9, 2011, 6:57:26 PM9/9/11
to publice...@googlegroups.com
Yo lo hago mucho más sencillo. Simplemente consulto cual es la fecha o la hora del Servidor. Si obtengo respuesta, entonces evidentemente la conexión está activa. Y si no .... pues no.

Saludos.

Walter.



> Date: Fri, 9 Sep 2011 15:52:35 -0700
> Subject: [vfp] Re: ODBC como saber si la conexcion esta activa.
> From: jmaur...@yahoo.es
> To: publice...@googlegroups.com

Luis Mata

unread,
Sep 9, 2011, 7:09:49 PM9/9/11
to Comunidad de Visual Foxpro en Español
Ok, en resumen quieres conectarte, sacar la tabla usuarios y cerrarlo. Cierto?
 


logo2
Mata Figueroa, Luis A.
Procesos, Tecnología de la Información y telecomunicaciones
TELF: (00 51 1) 617-4613
RPC : (00 51) 993597297
FAX : (00 51 1) 617-4601
lm...@cclf.com.pe
www.cclf.com.pe
imgfrm siguenos-fb

logo2[3].png
imgfrm[3].png
siguenos-fb[3].gif

mpulla

unread,
Sep 9, 2011, 11:20:14 PM9/9/11
to Comunidad de Visual Foxpro en Español
Luis.

Me gusta trabajar abriendo y cerrando la conexcion, en momentos
determinados necesito saber si la conexcion esta abierta o cerrada...

Si no hay otra caso tocaria hacerlo como dice Walter.

Saludos.
Mauricio.

On Sep 9, 6:09 pm, "Luis Mata" <lm...@cclf.com.pe> wrote:
> Ok, en resumen quieres conectarte, sacar la tabla usuarios y cerrarlo. Cierto?
>
>  logo2[3].png
> 16KViewDownload
>
>  imgfrm[3].png
> 59KViewDownload
>
>  siguenos-fb[3].gif
> 2KViewDownload

Luis Mata

unread,
Sep 9, 2011, 11:46:24 PM9/9/11
to Comunidad de Visual Foxpro en Español
Bueno si trabajas asi seria:

Conetar:
ccon = SQLStringConnect("Driver={SQL
Server};Server=miserver;Database=mibd;Uid=miuser;Pwd=mipwd;")
luego sacar la tabla usuarios:
r=sqlexec(ccon,"select nombre,login from tab_usuarios","tab_usuarios")
if r<0
messagebox("Error")
else
*--Aqui todo lo demas
endif
desconectar:
SQLDISCONNECT(ccon)

-----Mensaje original-----
From: mpulla
Sent: Friday, September 09, 2011 10:20 PM
To: Comunidad de Visual Foxpro en Espa�ol


Subject: [vfp] Re: ODBC como saber si la conexcion esta activa.

Luis.

Me gusta trabajar abriendo y cerrando la conexcion, en momentos
determinados necesito saber si la conexcion esta abierta o cerrada...

Si no hay otra caso tocaria hacerlo como dice Walter.

Saludos.
Mauricio.

On Sep 9, 6:09 pm, "Luis Mata" <lm...@cclf.com.pe> wrote:
> Ok, en resumen quieres conectarte, sacar la tabla usuarios y cerrarlo.
> Cierto?
>
> --------------------------------------------------------------------------------
>
> Mata Figueroa, Luis A.

> Procesos, Tecnolog�a de la Informaci�n y telecomunicaciones

> > Obviamente si ya se desconecto no va a pasar ni a balas la transacci�n
> > ni nada, eval�a cada transacci�n, aunque no deber�a de pasar mucho, a
> > menos que haya deficiencia de la red, saturaci�n de VPN, y si es
> > constante la ca�da ya hay un problema que atenta a la integridad de tus
> > datos, ah� si hay que tomar medidas....


>
> > --------------------------------------------------------------------------------
>
> > Mata Figueroa, Luis A.

> > Procesos, Tecnolog�a de la Informaci�n y telecomunicaciones

Luis Mata

unread,
Sep 9, 2011, 11:50:16 PM9/9/11
to publice...@googlegroups.com
Ah ya para conectarte seria asi para que te retorne en mensaje y no el error
tipico de sql server:
SQLSETPROP(0, "DispLogin", 3)
cscom = SQLStringConnect("Driver={SQL
Server};Server=miserver;Database=mibd;Uid=miuser;Pwd=mipwd;")
IF cscom < 0
messagebox( 'No se puedo establecer conexi�n:'+CHR(13)+;
'El servidor No existe o no tiene acceso a el.'+CHR(13)+;
'Verifique la Ip del Servidor y vueva a intentarlo.')
quit
ENDIF

-----Mensaje original-----
From: mpulla
Sent: Friday, September 09, 2011 10:20 PM
To: Comunidad de Visual Foxpro en Espa�ol


Subject: [vfp] Re: ODBC como saber si la conexcion esta activa.

Luis.

Me gusta trabajar abriendo y cerrando la conexcion, en momentos
determinados necesito saber si la conexcion esta abierta o cerrada...

Si no hay otra caso tocaria hacerlo como dice Walter.

Saludos.
Mauricio.

On Sep 9, 6:09 pm, "Luis Mata" <lm...@cclf.com.pe> wrote:
> Ok, en resumen quieres conectarte, sacar la tabla usuarios y cerrarlo.
> Cierto?
>
> --------------------------------------------------------------------------------
>
> Mata Figueroa, Luis A.

> Procesos, Tecnolog�a de la Informaci�n y telecomunicaciones

> > Obviamente si ya se desconecto no va a pasar ni a balas la transacci�n

> > ni nada, eval�a cada transacci�n, aunque no deber�a de pasar mucho, a
> > menos que haya deficiencia de la red, saturaci�n de VPN, y si es
> > constante la ca�da ya hay un problema que atenta a la integridad de tus
> > datos, ah� si hay que tomar medidas....


>
> > --------------------------------------------------------------------------------
>
> > Mata Figueroa, Luis A.

> > Procesos, Tecnolog�a de la Informaci�n y telecomunicaciones

mpulla

unread,
Sep 10, 2011, 12:15:30 AM9/10/11
to Comunidad de Visual Foxpro en Español
Hola Luis.

Con Ado solamente reviso que la propiedad de la conexcion State > 0
para saber que la conexcion esta abierta, me gustaria hacer lo mismo
con ODBC

En mis formularios tengo un procedimiento base en donde abro la
conexcion llamo a otros metodos intermedios que verifican la conexcion
para de ser necesario abrirla y cerrarla.

El problema es que en momentos los metodos intermedios son llamados
desde otros metodos que no habren la conexcion y por eso necesito
saber si la conexcion esta abierta.

Saludos y gracias por tu tiempo.
Mauricio.

Yvan GMail

unread,
Sep 10, 2011, 12:19:22 AM9/10/11
to publice...@googlegroups.com
Hola mpulla,
Pq aquí publicaron que para hacer eso.., hacían un getdate.. si salía nulo
creo.. no había conexión.. aun no he hecho la prueba.
=sqlexec(con,"select getdate()"

Saludos.
Yvan Carranza
285-7627

-----Mensaje original-----
De: publice...@googlegroups.com
[mailto:publice...@googlegroups.com] En nombre de mpulla
Enviado el: viernes, 09 de septiembre de 2011 23:16
Para: Comunidad de Visual Foxpro en Español
Asunto: [vfp] Re: ODBC como saber si la conexcion esta activa.

Hola Luis.

Con Ado solamente reviso que la propiedad de la conexcion State > 0

Luis Mata

unread,
Sep 10, 2011, 12:38:03 AM9/10/11
to publice...@googlegroups.com
if miconexion < 0
messagebox("Se desconecto del servidor")
endif

Prueba

-----Mensaje original-----
From: mpulla
Sent: Friday, September 09, 2011 11:15 PM

mpulla

unread,
Sep 11, 2011, 7:28:17 AM9/11/11
to Comunidad de Visual Foxpro en Español
Ok. Luis.

Gracias.
Mauricio.
Reply all
Reply to author
Forward
0 new messages