Hoje vou mostrar um pequeno exemplo de como atualizar (ou até mesmo consultar) dados de uma outra base de dados via TCLink no AdvPL.
Supondo que o ERP Protheus, esteja usando um SQL Server, mas você precisa se conectar a outra base (seja Oracle, SQL Server, etc), como fazer com AdvPL?
Primeiramente é necessário criar a configuração de conexão da base de dados no seu DbAccess (para isso será necessário fazer via DbMonitor), nesse link eu mostro como fazer algo similar – https://terminaldeinformacao.com/2017/12/17/como-instalar-protheus-parte-3-dbaccess-odbc/.
Quando os testes no DbMonitor estiverem ok, agora via AdvPL, é necessário você criar uma conexão via TCLink (guardando o ponteiro deixado por ela). Essa conexão, você passa as instruções configuradas no seu DbAccess.
Com a conexão realizada, ai você consegue executar os comandos direto nessa base. Ai quando você acabar de usar a base, basta você dar um TCUnlink para desconectar.
Abaixo um pequeno exemplo de código em AdvPL que faz o que citamos acima.
Local cBcoDados:= "MSSQL/BANCO_XPTO" //Conexão no DbAccess com a outra base de Dados Local cServer := "192.168.xxxxx" //Servidor que está configurado o DbAccess Local nPorta := 7890 //Porta da conexão do DbAccess Local nHandle := 0 //Ponteiro que armazenará a conexão //Conecta com Banco nHandle := TcLink(cBcoDados, cServer, nPorta) //Se houve algum erro na conexão If nHandle < 0 MsgInfo("Não foi possível conectar! Erro: " + cValToChar(nHandle), "Atenção") //Senão, insere um registro em uma tabela (você pode fazer outras operações como SELECT, UPDATE, etc) Else cQuery := " INSERT INTO TABELA_XYZ VALUES ( " cQuery += " null, 1, 'Daniel', 'Teste') " TcSqlExec(cQuery) Endif //Desconecta TCUnlink(nHandle)
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Muito legal Atílio! Valeu aí!
Eu que agradeço o comentário George.
Grande abraço.
Muito bom, grato pela dica!
Opa, muito obrigado pelo comentário Xará.
Grande abraço.
Existe a possibilidade de acessar outra base, de outro sistema?
Bom dia Luiz, tudo joia?
Sim, é possível. Desde que, esteja configurado a conexão do outro sistema, dentro do DbAccess.
Um grande abraço.