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

03/03/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:
UPDATE PERSONAL
SET VERSAO = COALESCE(VERSAO, 1) + 1
WHERE (INDICE = 1);



Será que não posso fazer isso?

Desde já agradeço

[]s


Titanius

Respostas

03/03/2006

Djorius

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


não testei, mas deve funcionar.


Responder Citar

03/03/2006

Titanius

não testei, mas deve funcionar.


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


Responder Citar

03/03/2006

Djorius

é 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.

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


testei essa sql aqui e funcionou.


Responder Citar

03/03/2006

Gandalf.nho

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


Responder Citar

04/03/2006

Titanius

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...


Responder Citar