IBDAC / UNIDAC + Interbase 6 ou 7 + Um campo de tabela chamado "Retornando"
Pergunta
Estou portando código realmente antigo para usar os componentes da UNIDAC. Eu atingi uma parede com uma atualização específica SQL que muda um campo chamado "retornando". Simplesmente embrulhar o campo nas cotações não resolve o problema, porque o dialeto SQL no banco de dados é 1, que não suporta delimitadores de campo de cotação dupla. Existe alguma maneira de contornar isso sem mudar o campo? Estou no Delphi 7 e estou me afastando dos componentes da Interbase DB.
Editar: SQL é o seguinte:
update logger set
returning = :RETURNING
where locator = :LOCATOR
Retorna o seguinte erro ao tentar se preparar:
---------------------------
Ww
---------------------------
Dynamic SQL Error
SQL error code = -104
Token unknown - line 3, char -1
where.
---------------------------
OK
---------------------------
Isso ocorre mesmo quando eu defino o dialeto SQL do cliente como 1 no código:
query1.Connection.SpecificOptions.Values['SQLDialect'] := '1';
Solução
Eu tive que conversar com o desenvolvedor. Foi abordado a um determinado ponto, mas preciso remover todos os parâmetros na consulta antes de executá -la. Muito estranho, mas é uma solução alternativa:/
Outras dicas
É possível criar uma visualização deixando tudo o mesmo, exceto para este campo e usar essa visualização em seu aplicativo?
É possível executar este aplicativo com a DLL do cliente de um Firebird <2,1 (1,5, por exemplo) e um servidor com a mesma versão?
Eu acho que isso se deve à nova sintaxe, onde o retorno é uma palavra reservada!