Array
(
)

Erro usando TIBScript... não posso fazer isso?

Titanius
   - 03 mar 2006

Olá, estou tentando executar o seguinte script através do TIBScript, e está dando o seguinte erro:

Dynamic SQL Error
expression evaluation not supported.

Script:
#Código


UPDATE PERSONAL
SET VERSAO = COALESCE(VERSAO, 1) + 1
WHERE (INDICE = 1);



Será que não posso fazer isso?

Desde já agradeço

[]s


Djorius
   - 03 mar 2006

#Código


UPDATE PERSONAL
SET VERSAO = (SELECT COALESCE(VERSAO, 1)+1 FROM PERSONAL)
WHERE (INDICE = 1);


não testei, mas deve funcionar.


Titanius
   - 03 mar 2006


Citação:

não testei, mas deve funcionar.


Amigo, não funcionou não... :( mesmo erro...


Djorius
   - 03 mar 2006

é o seguinte: se na tabela PERSONAL houver mais de um registro gravado, então vai dar erro mesmo. Se esse é o caso use GROUP BY.

#Código


UPDATE PERSONAL
SET VERSAO = (SELECT COALESCE(VERSAO, 1)+1 FROM PERSONAL
GROUP BY 1)
WHERE (INDICE = 1);


testei essa sql aqui e funcionou.


Gandalf.nho
   - 03 mar 2006

Qual a versão do banco de dados? Outra coisa, para esse tipo de comando, não precisa usar IBScript, use o IBSQL mesmo.


Titanius
   - 04 mar 2006

Gente... seguinte, pode parecer burrice, mas eu vi o caminho do banco de dados, e estava ligado a minha base oficial, porem o campo em si era varchar, e eu mudei o tipo dele na minha base teste, e esqueci de mudar na oficial... :oops:

Me desculpem a trapalhada...

Obrigado,
[]s

P.s.: No caso eu estou usando o IBScript, pois poderei ter mais de um ´script´ ao mesmo tempo...