Erro :quot; ...... conversion error from string quot;0quo

Firebird

10/07/2006

Pessoal este erro acontece quando tento ´rodar´ a seguinte procedure...

CREATE PROCEDURE SELECT_ULT_MANUT( I_COD_OS CHAR(15)) RETURNS ( C_DATA DATE, C_DATA_ULT_MANUT CHAR(10)) AS begin select MAX(C_DATA_PREVISAO) from CM0100 where C_COD_OS = :I_COD_OS into :C_DATA; if (:C_DATA = 0) then begin C_DATA_ULT_MANUT = ´1ª MANUTENÇÃO´; end else begin C_DATA_ULT_MANUT = cast(C_DATA as VARCHAR(10)); end end


erro :

Overflow occurred during data type conversion. conversion error from string ´0´.


Alguém sabe o pq deste erro ?????


Cabelo

Cabelo

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

10/07/2006

Colega,

Verifique se o CharSet foi definido como ISO8859_1. Parece que não!


GOSTEI 0
Cabelo

Cabelo

10/07/2006

Realmente não...

eu defino o charset win1252

já resolví o problema... estava usando 0 ao invés de null

CREATE PROCEDURE SELECT_ULT_MANUT( I_COD_OS CHAR(15)) RETURNS ( C_DATA DATE, C_DATA_ULT_MANUT CHAR(10)) AS begin select MAX(C_DATA_PREVISAO) from CM0100 where C_COD_OS = :I_COD_OS into :C_DATA; if (:C_DATA [color=red:6f34e1bb8d]is null[/color:6f34e1bb8d]) then begin C_DATA_ULT_MANUT = ´1ª MANUTENÇÃO´; end else begin C_DATA_ULT_MANUT = cast(C_DATA as VARCHAR(10)); end suspend; end


vc acha que se definice o charset para [b:6f34e1bb8d][size=18:6f34e1bb8d]ISO8859_1[/size:6f34e1bb8d][/b:6f34e1bb8d] iria funcionar com o zero????


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

10/07/2006

Colega,

WinXXXX é um padrão da Microsoft e ISO, bem, é ISO. Mas Win1252 e ISO8859_1 são idêntiticos. Eu achei que o erro era aqui:
C_DATA_ULT_MANUT = ´1ª MANUTENÇÃO´; 

Por isso, fiz o comentário anterior. (Apesar da mensagem de erro)


GOSTEI 0
Cabelo

Cabelo

10/07/2006

Entendí...

Você achou que o erro era caracteres especiais e acentuação certo???

mas o erro era no null...

mesmo assim valeu pela ajuda..


GOSTEI 0
POSTAR