Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
OcorrênciaFalha de inserção ou update de registro, retornando um erro do Banco de Dados em uso, informando que uma determinada coluna da tabela não existe, quando a aplicação AdvPL tenta fazer uma inserção ou atualização usando um ALIAS de ta tabela aberta internamente pelo FrameWork do AdvPL

Quando a aplicação

Inclusão de trecho
AdvPL
AdvPL
nopaneltrue
tenta fazer um insert ou update utilizando um ALIAS de tabela que foi aberta internamente pelo Framework da linguagem, usando um recurso de otimização de busca de colunas relacionadas

– normalmente pela MBROWSE do ERP Microsiga. 

, ocorre falha na operação, retornando um erro específico do SGDB utilizado.

Trechos de mensagens de erro:

Bloco de código
titleMensagem de erro observada em ambiente Oracle
THREAD ERROR ([8764], usuario, dekstop) 10/09/2019 15:30:10
EE7010: DB error (Insert): -27 File: EE7010 - Error : 904 - ORA-00904: "A1_NOME": invalid identifier
( From tISAMFile::Write )
Bloco de código
titleMensagem de erro observada em ambiente MSSQL
THREAD ERROR ([4784], usuario, desktop)   19/08/2019 09:49:24
SC5010: DB error (Update): -29 File: SC5010 - Error : 207 (S0022) (RC=-1) - [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'A1_NOME'.
Error : 8180 (37000) (RC=-1) - [Microsoft][ODBC SQL Server Driver][SQL Server]Statement(s) could not be prepared.
( From tISAMFile::Update )
Melhoria

Uma tabela aberta internamente com colunas agregadas por relacionamento (ou Joined Columns) não deve ser usada para inserção ou alteração de dados, apenas consulta.

Sem uma proteção específica para estas condições,

o DBAccess submetia ao Banco de Dados

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
submetia ao SGDB uma instrução que fatalmente não seria executada

por referenciar

, pois referenciava colunas que não existem fisicamente (virtual columns), retornando um erro

do SGDB

Ao ser implementada a proteção destas operações no DBAccess para tabelas com estas características, o DBAccess retorna uma condição de erro informando

Foi implementada uma melhoria na mensagem apresentada pelo

Inclusão de trecho
dbaccess
dbaccess
nopaneltrue
, que passa a informar que a operação solicitada

não

é

válida

inválida para a tabela em questão

, retornando as seguintes ocorrências de erro:

.

As seguintes mensagens passam a ser observadas no console do

Inclusão de trecho
dbaccess
dbaccess
nopaneltrue
:

Sem Formato
DB error 
DB error
(Insert): -27 File: MYTEST - TOP Error -27 - Invalid Insert on Table with JOINED Columns ( From tISAMFile::WriteRecord )

DB error (Update): -29 File: MYTEST - TOP Error -29 - Invalid Update on Table with JOINED Columns ( From tISAMFile::Update )
Informações adicionais
  • Referente ao chamado: DBTEC-792