BlackTDN Search

segunda-feira, 12 de dezembro de 2011

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"

2 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