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

Delphi

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

Titanius

Curtidas 0

Respostas

Djorius

Djorius

03/03/2006

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


não testei, mas deve funcionar.


GOSTEI 0
Titanius

Titanius

03/03/2006

não testei, mas deve funcionar.


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


GOSTEI 0
Djorius

Djorius

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

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


testei essa sql aqui e funcionou.


GOSTEI 0
Gandalf.nho

Gandalf.nho

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


GOSTEI 0
Titanius

Titanius

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


GOSTEI 0
POSTAR