Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

Versão 1 Próxima »

Função: TCSetConn

Permitir alternar entre conexões ativas em um programa AdvPL ao TOPConnect ou DBAccess.

TCSetConn ( < nHndConn> ) --> lRet

NomeTipoDescriçãoObrigatórioReferência
nHndConnNuméricoIndica o número da conexão que deve ser tornar a corrente. Este número foi retornado pela função TCLink(). X
    lRet(logico)
  • 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.).
  • 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 de statement, 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 ).
/*Exemplo de função que alterna entre conexão de dados de ERP E conexão adicional com outro banco através do DBAccess.Deve ser executada a partir do Menu do ERP */User Function OtherConn()// Recupera handler da conexão atual com o DBAccess // Esta conexão foi feita pelo Framework do AdvPL, usando TCLink()Local nHErp := AdvConnection() Local cDBOra := "ORACLE/P10_TESTE"Local cSrvOra := "172.16.0.1"Local nHndOra Local cQuery := ''conout("ERP conectado - Handler"+str(nHndOra,4))// Cria uma conexão com um outro banco , outro DBAccesnHndOra := TcLink(cDbOra,cSrvOra,7890)If nHndOra < 0    UserException("Falha ao conectar com "+cDbOra+" em "+cSrvOra)Endifconout("Oracle conectado - Handler"+str(nHndOra,4))conout("Banco = "+TcGetDB())// Volta para conexão ERP tcSetConn(nHErp)conout("Banco = "+TcGetDB())// Fecha a conexão com o Oracle TcUnlink(nHndOra)conout("Oracle desconectado")// Mostra a conexão ativa conout("Banco = "+TcGetDB())Return
Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server

  • Sem rótulos