Page tree

Fat0168 erro de ctbanfs : sintaxe incorreta perto de "E" (Incorrect syntax near "E")

Produto:

 Microsiga Protheus

Versões:

11 e 12

Ocorrência:

Ao efetuar uma contabilização de uma nota de saída, gera o erro:

: Error : 102 (37000) (RC=-1) - [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near ''E". ( From tMSSQLConnection::GetQueryFile )

 

Ambiente:

 Brasil

Passo a passo:

O erro ocorre por que ao tentar executar uma query do lançamento padrão para a contabilização, o Banco de Dados está recebendo conteúdo de gravação com caractere especial (' " # @ $ % ¨! & *).

Para solucionar este erro, verifique a gravação dos dados que a tabela CTK (arquivo de contraprova) está trazendo, para este caso em específico o erro encontra-se no campo CTK_HAGLUT, onde a codificação solicita para preencher o histórico aglutinado contábil  com o nome do cliente, buscando a informação no campo a1_nome.

A informação do nome do cliente no cadastro possui um apostrofo ( ' ) na sua composição, isso interfere na codificação e gravação de banco de dados, onde ele entende que a query finalizou seu bloco de instruções quando encontra o apostrofo, o que vier após isso, fica caracterizado como erro de sintaxe.

Exemplo:

Query do lançamento padrão: CT5_HAGLUT(C) :VENDAS NF."+SD2->D2_SERIE+"/"+SD2->D2_DOC+"-"+SUBSTR(SA1->A1_NOME,1,15),1,40)      

Resultado recebido no arquivo de contra prova, tabela CTK :  'VENDAS NF 001 000101 - 000008572-ABCIN ' E LTDA'

O apostrofo entre a letra N e a letra E, é um caractere especial  não aceito na montagem da query para o banco dados.

As opções para correção desse problema são:

1 - Retirar o apostrofo do nome do cliente e deixar com espaço em seu lugar, exemplo, ABCIN E LTDA;

2 - Retirar o campo A1_nome da query e assim não informar o nome do cliente;
 

3- Utilizar um execblock no lançamento padrão, para poder tratar caracteres especiais.

  Obs: Para esta tratativa, o suporte padrão não orienta a programação, em caso de dúvidas, abrir um novo atendimento junto a equipe de Advpl, para orientação.

 

Observações:

 Ticket referência para a documentação: 261994