Boa tarde!
Estou criando uma customização onde crio uma tabela temporária usando a classe FwTemporaryTable e logo em seguida a preencho com os dados de um Select juntamente com a função TcSqlExec.
Em anexo está um exemplo do código utilizado. Perceba que no Pivot do SQL coloquei o nome do campo errado (D1_TOTAL ao invés de VALTOT), o que vai ocasionar erro de execução no SQL Server.
A função TcSqlExec vai retornar que a execução deu erro, mas a TcSqlError não retorna nada.
Alguém já passou por uma situação similar? Nessa situação já efetuei a correção da query, mas gostaria de ter uma maior confiança na função caso ocorra futuramente.
Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.
Giordano, nunca vi essa situação, já tentou atualizar os binários, appserver, dbaccess e dbapi pra verificar se a situação é a mesma?
Boa tarde, Daniel! O DbAccess e LIB já estão atualizados, testei tanto no binário 17 e no 19 mas o erro foi o mesmo.
Giordano, vou recomendar você abrir uma issue/ticket para a Tecnologia (TEC), eu tentei reproduzir com um POC e não consegui, talvez seja envolvendo também o seu banco de dados, ODBC etc, aí eles precisam analisar na camada do binário mesmo. Não é uma situação comum isso ocorrer, na verdade, como já disse antes, nunca havia visto essa situação, o TCSqlError traz erros até de execução de Procedures.
Efetuei a abertura de um chamado na TOTVS e eles conseguiram simular a situação. Assim que obter uma solução deles eu posto aqui.
Bom dia, uma situacao similar ocurrio pero executando stored procedures com tabelas temporárias é comentários (print na saída) dentro de o script SQL que nao retornaba resultados correctamente, além de atulizar os binários, adicionamos uma configuracao no dbaccess.ini para que possa trazer os resultados corretamente:
ODBC30=0
Artigo origem: https://centraldeatendimento.totvs.com/hc/pt-br/articles/360047140134-MP-ADVPL-Erro-na-execu%C3%A7%C3%A3o-de-procedures-via-ADVPL-
Chave ODBC30 no TDN: https://tdn.totvs.com/pages/viewpage.action?pageId=36799225
Acho que o mensagem do SQL indicando que o campo na existe no INSERT faz o mesmo que o mensagem que nossos retornavamos com o SP.
Espero que seja de sua ajuda.
Bom dia! Também tive esse problema na execução de Stored Procedures, mas mesmo com essa chave ativada o TcSqlError não retorna nada na execução do Insert.
Bom dia!
Em contato com a TOTVS fui informado que esse problema já está mapeado e será corrigido na próxima versão do DbAccess v20.1.1.0.