Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
portuguese
Composition Setup
import.css=/download/attachments/3279126062824/newLayouttecnologia.css

Pagetitle
TCSetConn
TCSetConn

Função: TCSetConn

...

Permite alternar entre as conexões ativas com o DBAccess.

Sintaxe

Bloco de código
collapsefalse
TCSetConn( <
nHndConn> ) --> lRet 
 nHandle > )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

...

nHandle

...

numérico

Indica o número da conexão que deve ser tornar a corrente

...

.

X

 

Retorno

Nome

...

Tipo

...

Descrição

lRet

...

lógico

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.).

Observações

...

  • 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

...

  • indicado em nHandle é 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 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).

Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
//
*
 Exemplo de função que alterna entre conexão de dados de ERP 
E
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
nHndERP := AdvConnection()


  Local cDBOra  := "ORACLE/
P10
DB_TESTE"


  Local cSrvOra := "172.16.0.1"


  Local nHndOra

 := -1
  Local cQuery  := ''


  
  conout( "ERP conectado - Handler = " + str(
nHndOra
 nHndERP, 4 )
)
 )
  
  // Cria uma conexão com um outro banco
, outro DBAcces


  nHndOra := TcLink( cDbOra, cSrvOra, 7890 )


  If nHndOra < 0


    UserException( "Falha ao conectar com " + cDbOra + " em " + cSrvOra )

Endif

  Endif
  
  conout( "Oracle conectado - Handler = " + str( nHndOra, 4 ) )


  conout( "Banco = " + TcGetDB()
)
 )
  
  // Volta para conexão ERP


  tcSetConn(
nHErp)
 nHndERP )
  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
 

Return

Veja também