Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: cArqTab :: Otimizando a Abertura do Sistema: Como a Escolha do Método de Carregamento Afeta o Desempenho

_Créditos da imagem: Gerada com auxílio do ChatGPT_ # cArqTab :: Como o carregamento de informações em uma variável pode tornar lenta a abertura do sistema TOTVS Microsiga Protheus --- # Comparando LoadFromDBQuery e LoadFromDBWhile: Vantagens e Desempenho No desenvolvimento de soluções para o TOTVS Microsiga Protheus, otimizar o tempo de execução das funções é essencial, especialmente quando lidamos com grandes volumes de dados. Neste artigo, vamos analisar a diferença de desempenho entre os métodos `LoadFromDBQuery` e `LoadFromDBWhile`, utilizando os tempos de execução para demonstrar a vantagem de cada abordagem. ## Contexto do Teste Para avaliar o desempenho, executamos dois procedimentos distintos: - **U_TSTArqTabLoadDBQuery**: utiliza a função `LoadFromDBQuery`. - **U_TSTArqTabLoadDBWhile**: utiliza a função `LoadFromDBWhile`. Os comandos foram executados no ambiente Cygwin, e PowerShell e os tempos foram medidos da seguinte forma: *Cygwin ```bash $ time C:/totvs/tst/sma

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