• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Arkangel

Qual o erro neste exercício?

6 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Assim à 1ª vista, isso não está dentro de uma função/stored procedure...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

toda programação que faço em sql é PLSQL...mas à primeira vista...esse if não devia ter que estar fechado?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

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