Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: Gerenciamento de Erros e Avisos em Projetos AdvPL/TLPP: Um Desafio Frequente no Desenvolvimento TOTVS Protheus

_Créditos da imagem: Gerada com auxílio do ChatGPT_ --- **Gerenciamento de Erros e Avisos em Projetos AdvPL/TLPP: Um Desafio Frequente no Desenvolvimento TOTVS Protheus** Ao trabalhar com projetos desenvolvidos na linguagem AdvPL/TLPP, especialmente em ambientes como o TOTVS Microsiga Protheus, desenvolvedores frequentemente se deparam com uma série de problemas e avisos de compilação. Recentemente, em uma análise de código de um dos nossos projetos, foram identificados mais de 700 problemas durante o processo de compilação, distribuídos entre erros críticos e avisos que podem afetar o desempenho e a manutenção da aplicação. ### Principais Problemas Encontrados Entre os problemas destacados, podemos citar: 1. **Erros de Nomenclatura e Duplicação de Fontes**: - Um dos erros mais críticos que surgiram foi: "Not allowed more than one source with same name". Este erro é comum quando há múltiplos arquivos PRW com o mesmo nome em diferentes pastas do projeto, o que pode

Protheus :: TOP (DBAccess) :: Macetes e Brincadeiras...

Seguindo o que ja foi mencionado pelo Mestrao Lee (Dr. Naldo FrankStein), vamos brincar um pouco mais com o TOP (DBAccess) e até mesmo nao consumir licença de uso.. (op´s... sem licenças??? rs)

TOP - ODBC Genérico

Com uma conexão genérica, é possível acessar qualquer banco de dados moderno que dê suporte para ODBC. É possível realizar consultas através do comando TCGENQRY e atualizar dados, através de TCSQLEXEC.

A única restrição é que não é possível “abrir” a tabela dentro do Protheus utilizando DBUSEAREA porque para isso a tabela teria de estar registrada dentro da TOP_FIELD. Como consequência, não é possível utilizar uma conexão genérica como base principal do Protheus.

Para isso:

·       Criar todo aquele lance de ODBC.. blablabla...
·         Criar um alias de conexão usando qualquer tipo de banco
·         No INI do TOP (DBAccess):
o    Mudar a seção do banco para [ODBC]. EX: [DB2] --> [ODBC]
o    Mudar o nome da seção do alias criado.
·         [DB2/ALIAS_CRIADO] --> [ODBC/ALIAS_CRIADO] 
·         Mudar as seguintes opções no INI 
[General]
Port=7890
Porta ao qual o TOP abrira a escuta das conexões
 
[Service]
Seção a ser criada para definir o serviço do TOP
Name=TotvsDBAccess
Nome único do serviço (sem espaços)
Displayname=TotvsDBAccess 4.2 Padrao
Nome vísivel no gerenciador de serviços do Windows

No ADVPL:
TCLINK( "ODBC/NOME_DO_ALIAS",  cServidor, nPorta[CASO A PORTA SEJA DIFERENTE DE 7890] )

... SEM GASTAR LICENÇA NO TOP (DBAccess)...
Ao usar o comando TCLINK uma licença de TOP (DBAccess) é consumida. Para evitar que isso ocorra, basta concatenar a seguinte string no nome do alias TOP : “@!!@”
No exemplo acima fica assim:

TCLINK( "@!!@ODBC/NOME_DO_ALIAS",  cServidor, nPorta[CASO A PORTA SEJA DIFERENTE DE 7890] )

Mais tarde tem mais post!!!

Rodrigo "OVERFAIL"

Comentários

  1. Naldo,

    Isso significa que utilizando a função TCLink NÃO podemos de forma alguma realizar um RecLock no banco remoto?

    ResponderExcluir
  2. Putz...me ajudou a corrigir um fonte aqui, muito boa a dica.

    ResponderExcluir

Postar um comentário

Postagens mais visitadas