Estou tentando utilizar uma Consulta que criei no sistema LATROMI, mas está ocorrendo o erro Nome de coluna ‘XXX’ inválido…
Estou usando o banco Northwind do SQL Server para testar.
Percebi que o erro começou a ocorrer logo após eu criar um parâmetro para filtrar a coluna ShipCountry .
No Cadastro da Consulta, no LATROMI Client, o comando SQL está assim:
SELECT * FROM Orders
WHERE ShipCountry = {?PARAM ShipCountry}
ORDER BY OrderDate
Quando executo a Consulta pelo LATROMI Web, o valor que eu informo no Filtro aparece na mensagem de erro. Por exemplo, se eu informo USA o erro fica Nome de coluna ‘USA’ inválido. .
Estou adicionando print das configurações do Parâmetro ShipCountry e da tela onde está aparecendo o erro.
Este é um erro que ocorre com frequência para quem não está acostumado com o LATROMI.
Os apóstrofos não são adicionados automaticamente na substituição dos parâmetros do Comando SQL, que ocorre antes do mesmo ser executado no Banco de Dados.
Neste caso, o Comando SQL está sendo enviado ao banco de dados dessa forma:
SELECT * FROM Orders
WHERE ShipCountry = USA
ORDER BY OrderDate
Note que se executar este comando no SQL Management Studio, vai ocorrer o mesmo erro.
Para corrigir, basta adiciona os apóstrofos no próprio Comando SQL, antes e depois do parâmetro:
SELECT * FROM Orders
WHERE ShipCountry = '{?PARAM ShipCountry}'
ORDER BY OrderDate
Parâmetro com Valor Nulo
Se por a caso o valor do parâmetro for null, o sistema se encarrega de remover os apóstrofos desnecessários.
1 curtida