Lixo em mensagem RAISERROR - help!
09/09/2004
0
Olá pessoal, o meu problema é o seguinte:
Em um determinado ponto de uma Stored Procedure, há uma condição, que caso seja verdadeira, lanço uma mensagem. O código segue abaixo:
IF (COALESCE(@Valor_Multa,0) <> COALESCE(@Multa_original, 0))
BEGIN
SELECT @Msg = ´Não é possível alterar a multa de um documento de baixa parcial (´ + @Old_Shopping + ´/´ + @Old_Codigo_do_Documento + ´).´ + char(13) + char(10) + ´ Ela deve ser incluida no momento da criacao da parcela.´
RAISERROR ( @Msg, 16, 1 )
RETURN 0
END
O problema é que quando eu rodo a aplicação no Delphi, no cadastro em questão ao qual se aplica essa stored procedure, o Delphi lança a excessão, com a mensagem que eu escrevi na stored procedure acima. Mas a mensagem não aparece inteira, aparece com lixo no final.
A mensagem aparece assim:
Não é possível alterar a multa de um documento de baixa parcial (RDB /BP20040303).
Ela deve ser incluida no momento
daÀ(quadradinho)
A mensagem aparece exatamente dessa forma.
Como posso fazer pra resolver esse problema?
Obrigado,
Tiago.
Em um determinado ponto de uma Stored Procedure, há uma condição, que caso seja verdadeira, lanço uma mensagem. O código segue abaixo:
IF (COALESCE(@Valor_Multa,0) <> COALESCE(@Multa_original, 0))
BEGIN
SELECT @Msg = ´Não é possível alterar a multa de um documento de baixa parcial (´ + @Old_Shopping + ´/´ + @Old_Codigo_do_Documento + ´).´ + char(13) + char(10) + ´ Ela deve ser incluida no momento da criacao da parcela.´
RAISERROR ( @Msg, 16, 1 )
RETURN 0
END
O problema é que quando eu rodo a aplicação no Delphi, no cadastro em questão ao qual se aplica essa stored procedure, o Delphi lança a excessão, com a mensagem que eu escrevi na stored procedure acima. Mas a mensagem não aparece inteira, aparece com lixo no final.
A mensagem aparece assim:
Não é possível alterar a multa de um documento de baixa parcial (RDB /BP20040303).
Ela deve ser incluida no momento
daÀ(quadradinho)
A mensagem aparece exatamente dessa forma.
Como posso fazer pra resolver esse problema?
Obrigado,
Tiago.
Tiagoharris
Curtir tópico
+ 0
Responder
Posts
16/09/2004
Aroldo Zanela
Colega,
Como foi declarada @msg? Abaixo um teste que efetuei por aqui e não apresentou problemas. Usei Delphi 6, SQL 2000 e ADO:
Como foi declarada @msg? Abaixo um teste que efetuei por aqui e não apresentou problemas. Usei Delphi 6, SQL 2000 e ADO:
CREATE PROCEDURE [USP_Teste] AS declare @mensagem as VarChar(1000) set @mensagem = ´Nao é possível alterar a multa de um documento de baixa parcial. (000/000000000)´+char(10)+char(13)+´Ela deve ser incluida no momento da criacao da parcela´ RAISERROR ( @mensagem, 16, 1 ) RETURN GO
Responder
16/09/2004
Tiagoharris
está declarado assim:
...
Declare
@Msgvarchar(500),
(mais outras variáveis)
...
Declare
@Msgvarchar(500),
(mais outras variáveis)
Responder
Clique aqui para fazer login e interagir na Comunidade :)