Veja a seguir respostas para algumas dúvidas comuns sobre o TOTVS | DBAccess.
1 - O que é o DBAccess?
O TOTVS | DBAccess é uma ferramenta de conectividade que permite o acesso a uma ampla variedade de SGBDs sem a necessidade de geração de códigos específicos para cada um deles.
2 - É possível trazer o conteúdo de um campo do tipo "M" (memo) através de uma query?
Não, não é possível, pois, o TOTVS | DBAccess suporta por compatibilidade campos do tipo MEMO presentes na estrutura dos arquivos DBF.
Caso seja feita uma query onde é retornado um campo MEMO explicitamente (selecionando um campo MEMO em uma query) ou implicitamente (executando um SELECT * em uma tabela que contém um campo MEMO), será registrado no arquivo de console do TOTVS | DBAccess uma mensagem de advertência, indicando que o campo MEMO foi removido do registro retornado.
Exemplos de mensagem de advertência:
[WARNING] Unsupported blob type [123] in field FLD_MEMO - Column removed from result set because binary (blob/image/memo) data types are not supported in query - (tOCI8Stmt::AssignFields)
[WARNING] Unsupported binary type [123] in field FLD_MEMO - Column removed from result set because binary (blob/image/memo) data types are not supported in query - (tOCI8Stmt::AssignFields)
[WARNING] Unsupported clob type [123] in field FLD_MEMO - Column removed from result set because binary (blob/image/memo) data types are not supported in query - (tOCI8Stmt::AssignFields)
[WARNING] Unsupported long type [123] in field FLD_MEMO - Column removed from result set because binary (blob/image/memo) data types are not supported in query - (tOCI8Stmt::AssignFields)
[WARNING] Unsupported column type [123] in field FLD_MEMO - Column removed from result set because binary (blob/image/memo) data types are not supported in query - (tOCI8Stmt::AssignFields)
Unsupported column type [123] in field FLD_MEMO - Column removed from result set because binary (blob/image/memo) data types are not supported in query - (tODBCStatement::BindCols)
3 - Procedimentos para teste com o build debug - Windows
A versão debug pode ser encontrada no pacote de atualização, na pasta debug, liberado no Portal de Suporte.
- Pare o serviço do TOTVS | DBAccess.
- Faça um backup da pasta onde ele está instalado.
- Copie todo o conteúdo da pasta debug e sobrescreva os arquivos.
- Apague o dbconsole.log, dbconsole.bak (caso exista) e qualquer arquivo core_*dmp (caso exista).
- Reinicie o TOTVS | DBAccess.
Obs.: Para análise de problemas de queda, colete os arquivos dbconsole.log, dbconsole.bak (caso exista), dbaccess.ini e coredump (core_dbg_*.dmp) gerado na mesma pasta do TOTVS | DBAccess.
Compacte os arquivos e anexe ao ticket aberto no Suporte Tecnologia.
4 - Procedimentos para teste com o build debug - Linux
A versão debug pode ser encontrada no pacote de atualização, liberado no Portal de Suporte
- pasta multi/debug, para distribuição MultiDB
- pasta informix/dbug, para distribuição exclusiva para Informix.
- Encerre o TOTVS | DBAccess.
- Faça um backup da pasta onde ele está instalado.
- Copie o conteúdo da pasta debug para a pasta onde o TOTVS | DBAccess está instalado.
- Apague o dbconsole.log e dbconsole.bak (caso exista).
- A partir daqui, todos os comandos devem ser executados como root.
Defina o tamanho de um core dumps como ilimitado.
ulimit -c unlimited
- Reinicie o TOTVS | DBAccess.
Obs.: Para análise de problemas de queda, colete os arquivos dbconsole.log, dbconsole.bak (caso exista), dbaccess.ini e coredump (core*) gerado na mesma pasta do TOTVS | DBAccess.
Compacte os arquivos e anexe ao ticket aberto no Suporte Tecnologia.
Algumas distribuições e/ou versões de Linux podem gerar o arquivo coredump em outro lugar, que não na pasta de instalação da aplicação.
Para mais detalhes, consulte o arquivo /var/log/messages ou agende um analista de infraestrutura.
5 - SGBD Grants
Devido à necessidades técnicas da linguagem AdvPL, é necessário dar permissão de acesso aos catálogos para todos SGBDs.
No caso do SGBD Oracle é necessário dar permissão aos catálogos abaixo:
- sys.obj
- Utilizado para verificar a existência de uma tabela e/ou índice.
- Utilizado para fazer o describe de tabelas e/ou índices e montar um cache interno de estruturas.
- Utilizado para fazer o describe de tabelas e/ou índices e montar um cache interno de estruturas.
- sys.col
- Utilizado para fazer o describe de tabelas e/ou índices e montar um cache interno de estruturas.
- Utilizado para fazer o describe de tabelas e/ou índices e montar um cache interno de estruturas.
- sys.icol
- Utilizado para fazer o describe de tabelas e/ou índices e montar um cache interno de estruturas.
- Utilizado para fazer o describe de tabelas e/ou índices e montar um cache interno de estruturas.
- sys.ind
- Utilizado para fazer o describe de tabelas e/ou índices e montar um cache interno de estruturas.
6 - Como remover sequences órfãs no Oracle?
As versões de TOTVS | DBAccess anteriores a 17.2.1.5, não estavam deletando/removendo as sequences criadas para tabelas temporárias e consequentemente deixando sequences órfãs no SGDB.
Para remover as sequences órfãs, execute o procedimento abaixo:
- Parar os serviços/processos do TOTVS | DBAccess
- Abrir um client Oracle de sua escolha (sqlplus, isql, Oracle SQL Developer, etc...)
- Conectar na base de dados utilizando o mesmo usuário utilizado pelo TOTVS | DBAccess
- Executar o script abaixo através do client conectado a base de dados:
DECLARE cStmt VARCHAR(128); CURSOR c IS SELECT SEQUENCE_NAME FROM ALL_SEQUENCES WHERE SEQUENCE_OWNER = USER AND REGEXP_LIKE(SEQUENCE_NAME, '^T.*_[0-9]+_SEQ'); BEGIN FOR it IN c LOOP cStmt := 'DROP SEQUENCE ' || it.SEQUENCE_NAME; EXECUTE IMMEDIATE cStmt; END LOOP; END;