Ajude o site desativando o bloqueador de anúncio

ASSINE A NEWSLETTER

Cadastrando...
PIX uDesenv pix deposito

TCSetConn[AS]

Autor: Eurai Criado: 01/01/2016 Atualizado: 25/04/2025

Descrição

TCSetConn[AS] - Permitir alternar entre conexões ativas em um programa AdvPL ao TOPConnect / DBAccess...

 

Sintaxe

TCSetConn( <nConn> )

 

Parâmetros


Par Nome Tipo Descrição Default Obg Ref
01
nConn
Numérico
Indica o número da conexão que deve ser tornar a corrente. Este número foi retornado pela função TCLink().
  X  

 

Retorno

Retorno Tipo Descrição
lRet Boolean
Retorna verdadeiro (.T.), se a conexão corrente for trocada com sucesso. Se a conexão informada não existir ou já estiver sido fechada, a conexão atual é mantida e a função retorna falso (.F.).

 

Exemplo

#INCLUDE "TOTVS.CH"
 
 
User Function TCSetConn()
Local cMsg		:= ''
Local nConn		:= 0
 
If ( nConn := TCLink( 'MSSQL/UNIVERSOADVPL_P12', '127.0.0.1', 7890 ) ) < 0
 
	MsgInfo( 'Conexão (MSSQL/UNIVERSOADVPL_P12): Erro ' + Str( nConn, 4 ), 'UniversoADVPL' )
 
Else
 
	TCSetConn( 0 )
	Conout( "Banco: " + TCGetDB() )//Banco ERP
 
	TCSetConn( nConn )
	Conout( "Banco: " + TCGetDB() )//Banco Link
 
 
	TCSetConn( 0 )//Banco ERP
	TCUnlink( nConn )//Desconecta do Banco Link
 
Endif
 
 
Return( Nil )

Resultado
tcsetconn_-_resultado_01                                       

 

 

Informações adicionais

A troca de uma conexão ativa não fecha a conexão anteriormente em uso.

Quando utilizamos mais de uma conexão, devemos trocar as conexões ativas quando necessário e abrir um recurso, tabela, query ou execução destatement, pois estas execuções são sempre realizadas na conexão ativa

O handler utilizado como parâmetro é obtido no momento que a conexão é criada, quando utilizamos a função TCLink().

Esta função é útil quando da necessidade de integração de aplicações, onde o ERP utiliza um SGBD através do DBAccess, e existe a necessidade da aplicação ADVPL conectar com outro banco de dados para ler ou gravar informações. Neste caso, um programa customizado executado a partir do menu do ERP, que já está conectado com o DBAccess apontando para o banco oficial de dados, pode fazer um TCLink() para um outro DBAccess apontando para outro banco, e alternar entre as conexões ativas, abrindo tabelas e queries em uma conexão e gravando informações em tabelas abertas na segunda conexão.

Como a troca entre conexões ativas com o DBAccess requer o handler retornado pela TCLink(), e o FrameWork do ERP Microsiga Protheus já estabelece esta conexão, é possível obter o handler da conexão atual já existente no processo através da função de Framework  "AdvConnection()" ( Esta função somente está disponíveis em Repositório para ambientes TOP/SGBD )

 

 

 

 

 

Gostou? Compartilhe com seus amigos e deixe um comentário! 😎  

 

 

 

 

 

 

 

Discussão (0)

Sem comentários ainda

Realize o LOGIN no site para poder comentar