Árvore de páginas

Versões comparadas

Chave

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

...

Pagetitle
TCLink
TCLink

...

...

Cria

...

uma

...

nova

...

conexão

...

com

...

um

...

banco

...

de

...

dados

...

SGBD

...

através

...

do

...

DBAccess.

Bloco de código
collapsefalse
TCLink(
< cConexao>, < cServerAddr>, [ nPort] ) --> nHndConn Parâmetros/Elementos
 [ cConn ], [ cServerAddr ], [ nPort ] )

Nome

Tipo

Descrição

Obrigatório

Referência

...

cConn

...

caractere

Indica a string de conexão do DBAccess, composta por um identificador do tipo da conexão mais o nome do "alias/environment" da conexão

...

. (Padrão = DBDatabase e DBAlias configurado no appserver.ini)



cServerAddr

caractere

...

Indica o nome ou endereço IP do servidor onde está o

...

DBAccess onde a conexão deve ser realizada.

...

(Padrão = DBServer configurado no appserver.ini)



nPort

...

numérico

Indica o número da porta TCP que o

...

DBAccess está configurado aguardando por novas conexões. (Padrão =

...

DBPort configurado no appserver.ini).



...

Através da função TCLink

...

é possível abrir uma nova conexão em um banco de dados (SGBD)

...

através do

...

DBAccess. Apenas após realizar uma conexão

...

é possível utilizar a

...

RDD "TOPCONN".

Em um ambiente configurado, no Application Server, para utilizar RPODB=TOP (para Microsiga Protheus 8 e anteriores) ou RPODB=SQL, para Microsiga Protheus 10, quando executamos aplicações e/ou User Functions a partir do menu do ERP, as rotinas de montagem de ambiente do Framework  ERP internamente utilizam a função TCLink() para abrir a conexão com o TOPConnect ou DBAccess e utilizar a RDD TOPCONN.

A montagem da string de conexão (1º parâmetro)

...

deve conter o Banco que será conectado, seguido do caractere

...

"/" (barra) e do nome da conexão configurada no

...

DBAccess. Os

...

bancos suportados podem ser:

...

  • MSSQL - Para bancos de

...

  • dados Microsoft SQL Server.
  • ORACLE - Para bancos de

...

  • dados Oracle.
  • INFORMIX - Para bancos de dados Informix.
  • DB2 - Para bancos de dados DB2 (DB2

...

  • UDB e DB2 400 com TOP4 para AS400/iSeries).

...

  • POSTGRES - Para bancos de dados PostgreSQL.

...

  • ODBC - Para estabelecer uma conexão ODBC genérica (*)

...

  • .

(*) Uma conexão

...

ODBC genérica pode ser utilizada em fontes para integrações e customizações, mas não pode ser utilizada como base de dados principal da aplicação Microsiga Protheus/ERP.

...

O nome da conexão configurada

...

no DBAccess, para a maioria dos bancos, é o nome dado à conexão ODBC configurada no equipamento, com exceção para conexões com banco de dados Oracle, onde o nome das conexões é definido no arquivo TNSNAMES.ORA, configurado junto do engine

...

OCI Client do Oracle, usado

...

pelo DBAccess para estabelecer conexão com o SGBD.

...

O handler da conexão retornado pela função TCLink()

...

é utilizado para ser possível realizar mais de uma conexão no mesmo processo entre bancos diferentes,

...

trocar entre as conexões ativas em tempo de execução de código e ainda fechar posteriormente as conexões estabelecidas. Quando a função TCLink()

...

é executada e estabelece uma nova conexão com sucesso, esta conexão torna-se a conexão ativa imediatamente.

...

A conexão existente continua aberta e todas as tabelas e queries abertas na conexão anteriormente ativas permanecem amarradas à conexão na qual elas foram abertas. Ao tornar uma nova conexão ativa, ela será efetivamente utilizada a partir do momento em que se tornou ativa nas operações de abertura de queries e abertura de tabelas e execução de statements.

...

Nota
icontrue
titleAtenção

Os valores padrão dos parâmetros cConn, cServerAddr e nPort só serão utilizados caso não seja passado parâmetro algum, ou seja, uma chamada de TCLink vazia (TCLink()). Caso contrário, o valor padrão de cConn e cServerAddr será uma string vazia ("") e de nPort será 0 (zero).

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
user function exemplo()
  local cDB  := "POSTGRES/dsn" // alterar o alias/dsn para o banco/conexão que está utilizando
  local cSrv := "localhost" // alterar para o ip do DbAccess
  
  nHwnd := TCLink(cDB, cSrv, 7890)
  
  if nHwnd >= 0
    conout("Conectado")
  endif
  
  TCUNLink()
return

Caso a conexão não seja estabelecida com sucesso, o handler será um número negativo, indicando uma situação de erro. Para mais detalhes sobre os códigos de erros retornados, consulte a documentação  "Lista dos códigos de erros do TOTVSDBAccess".

User Function MyLink()Local cDBOra := "ORACLE/P10_TESTE"Local cSrvOra := "172.16.0.1"Local nHndOra nHndOra := TcLink(cDbOra,cSrvOra,7890)If nHndOra < 0    UserException("Erro ("+srt(nHndOra,4)+") ao conectar com "+cDbOra+" em "+cSrvOra)Endifconout("Oracle conectado - Handler"+str(nHndOra,4))TcUnlink(nHndOra)conout("Oracle desconectado.")Return
Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server

...