Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Como saber quando a Conexão esta Inativa.
Message
From
09/09/2008 23:01:45
Peter Wagner
Point Informática Ltda.
Limeira, Brazil
 
General information
Forum:
Visual FoxPro
Category:
Client/server
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Vista
Network:
Windows 2003 Server
Database:
MS SQL Server
Miscellaneous
Thread ID:
01346191
Message ID:
01346247
Views:
8
This message has been marked as the solution to the initial question of the thread.
PCC, tudo bem?
Se vc deseja saber se a conexão ainda esta ativa, sugiro que vc use algo como o código abaixo:
LOCAL nome_servidor
nome_servidor = oODBC.cNomeServidor
LOCAL oSQLServer AS "SQLDMO.SQLServer"
oSQLServer = CREATEOBJECT("SQLDMO.SQLServer")
sqlversion = oSQLServer.PingSQLServerVersion(nome_servidor)
IF  sqlversion <> 0 OR sqlversion = SQLDMOSQLVer_Unknown
	llRetorno = .T.		&& Com conexão
ELSE
	llRetorno = .F.		&& Sem conexão
* seu código para reestabelecer a conexão  aqui...
ENDIF
Note que o comando PingSQLServerVersion existe desde a versão 7 do SQL Server e é valida somente até a versão do SQL 2008, pois será removido em futuras versões.
Ira retornar o valor de 8 para versão 7do SQL Server, 16 para a versão 2000 e 32 para o SQL 2005, não sei o valor de retorno para o SQL server 2008.

Existe tambem uma outra solução mais rápida:
LOCAL nID   &&nID é o handle da conexão atual.
nID = oOdbc.nID
csql = ""
a = SQLEXEC(nID,cSQL)			&& aqui da pau se estiver desconectado
IF a < 1
	WAIT WINDOW "Sem conexão"
ELSE
	WAIT WINDOW "Com conexão"
*     seu código para reestabelecer a conexão  aqui...
ENDIF 
[ ]'s
Peter


>Amigos,
>
>Estou usando o VFP 9 e SQL Server 2005. Utilizo SQL NATIVE CLIENT e ODBC para conetcar ao Banco.
>
>Utilizo Conexões diretas VIA ADO, e Cursor Adapter.
>
>Necessito saber se uma conexão esta inativa ( Queda do Link, Problemas no Switch etc....)
>
>O teste que faço, é após a abertura da conexão, faço alguns selects no banco, e desconecto o Cabo de Rede ( quando o servidor esta em outra máquina), ou dou um STOP no Banco.
>
>Pego o Status do Objetoc Conection e continua 1.(Utilizando ADO).
>
>A única coisa que consigo gerenciar é pelo ERRO 1429, que é OLE ERROR.
>
>Alguem tem alguma técnica mais apurada para me ajudar nisto ?
>
>Paulo Cesar Carneiro
Previous
Reply
Map
View

Click here to load this message in the networking platform