Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/327912/newLayout.css |
...
Pagetitle | ||||
---|---|---|---|---|
|
...
...
Função: TCLink
Cria
...
uma
...
nova
...
conexão
...
com
...
um
...
banco
...
de
...
dados
...
SGBD
...
através
...
do
...
DBAccess.
Sintaxe
Bloco de código | ||
---|---|---|
| ||
TCLink( < cConexao>, < cServerAddr>, [ nPort] ) --> nHndConn Parâmetros/Elementos [ cConn ], [ cServerAddr ], [ nPort ] )
|
Parâmetros
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). |
Retorno
...
Nome | Tipo | Descrição |
---|---|---|
nHwnd | numérico | Retorna um identificador numérico igual ou maior que zero para a conexão em caso de sucesso. Em caso de falha, será retornado um número negativo, indicando uma ocorrência de falha na conexão. |
Observações
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 | ||||
---|---|---|---|---|
| ||||
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). |
Exemplos
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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
|
Veja também
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
...