Ir para o conteúdo
Arkangel

Qual o erro neste exercício?

Mensagens Recomendadas

Arkangel    0
Arkangel

Boas pessoal. Estava aqui a resolver uns exercícios em sql, onde tenho de descobrir o(s) erro(s). Mas encalhei aqui num. Conseguem saber o que está mal neste código?

DECLARE @Current_Month int
SELECT @Current_Month = CURRENT_MONTH FROM RD_PROPERTIES 
IF @@ERROR<>0 
Begin
EXEC SP_LOG_ERROR @@ERROR, 'Error while getting the CURRENT_MONTH'
GOTO EndProc
End
RETURN (0)
EndProc:
RETURN (-1)

Obrigado ;).

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Arkangel    0
Arkangel

Está complicado... isto é suposto correr em sql server 2000. Será que o @@error perde o valor após o EndProc a seguir ao primeiro Return?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
José Lopes    1
José Lopes

A lógica..parece-me devia ser...

Se ele encontrar erro...retornar X

Caso contrário retornar Y...

Parece-me que deveria ser essa a lógica da função...

Mas tal como referi anteriormente o plsql tem muitas diferenças... e não percebo sequer nada do tratamento de erros do SQL Server..

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Arkangel    0
Arkangel

Ainda n tive oportunidade de testar isto no sql server 2000 pq n tive tempo, mas se @@error for diferente de zero, vai executar akilo k está dentro e passar para o endproc. Isso significaria que iria retornar 0... e 1. já k se for diferente de 0, retorna 0 pq n está dentro da clausula else... mas tb retorna 1 por causa da execução dentro do begin k dps apontará para o endproc. Se calhar é este o erro...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade