Incorrect syntax near the keyword ‘xpto’

​Esse é um erro que ocorre em aplicações que usam o “Microsoft OLE DB Provider for SQL Server​”, ao invés do ‘xpto’ vem o comando que o parser do OLE DB não consegue identificar, podendo ser o WITH, MERGE ou algum outro comando de uma versão mais recente do SQLServer.

Embora seja um bug isso ainda não foi corrigido até a ultima versão do MDAC (2.81.1132.0) liberada para downlod pela Microsoft, isso significa que esse problema ocorrerá em máquinas com o Windows XP instalado, mas em versões recentes do Windows (7 ou 8) esse problema não ocorre, devido a versão do MDAC (6.3.9600.16384) já estar compatível com os novos comandos do SQLServer.

Se você está preso a uma maquina com WindowsXP, como solução paliativa deve ser inserido um ponto e virgula (;) antes do comando que está com problema, no caso do WITH seria necessário colocar o “;” antes do comando que o WITH está sendo utilizado. Essa solução “engana” o parser e passa o comando diretamente pro banco de dados executar.

The following two tabs change content below.
Arquiteto de Software e Desenvolvedor Backend (quase Fullstack), geralmente trabalho com C#, PowerShell, Python, Golang, bash e Unity (esse é mais por hobby). Estou sempre buscando algo novo para aprender, adicionando novas ferramentas ao meu cinto de utilidades.
Posted in Dev, PowerBuilder and tagged , , , , , , , , .