• 3 odgovora
  • 3.070 pregleda
upravljenje greskama u storage procedurama 31.01.2008. u 09:27 · pre 228 meseci #1
Imama sledecu storage proceduru


ALTER PROCEDURE [dbo].[PreuzmiRadniNalog]
-- Add the parameters for the stored procedure here
@rNalId varchar(20)
AS
BEGIN
DECLARE @ErrNo as int,
@ErrMsg as VarChar(255)
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
-- SET NOCOUNT ON;

-- Insert statements for procedure here

If (SELECT DatumZav FROM RadniNalozi
WHERE rNalId = @rNalId) = null
BEGIN
SET @ErrNo = 50001
SET @ErrMsg = 'Neispravni podaci iz navedenog Radnog Naloga'
GOTO Rais_Error
END


Rais_error:
RAISERROR @errno @errmsg
--ROLLBACK TRANSACTION

END


kada probam da je izvrsim gde je uslov = true javlja mi sledecu gresku,
da li zna neko kako upravljati porukama kroz stored proceduru

Msg 2732, Level 16, State 1, Procedure PreuzmiRadniNalog, Line 29
Error number 0 is invalid. The number must be from 13000 through 2147483647 and it cannot be 50000.
Re: upravljenje greskama u storage procedurama 31.01.2008. u 09:53 · pre 228 meseci #2
Nisam se udubljivao u tvoj kod tako da ne znam da li je ovo resenje, ali je definitivno problem - ono sto je ocigledno je da si proveravao da li je nesto jednako NULL. To u SQL-u ne mozes da uradis. Moras proveravati IS NULL ili IS NOT NULL.

Edit: Evo sad sam malo bolje pogledao. Problem je sto ti IF nikad nece biti TRUE iz gore navedenog razloga, i kada dodje do labele rais_error: tebi je @errno = 0
Potpis
Every hamster has his day.
Re: upravljenje greskama u storage procedurama 31.01.2008. u 10:18 · pre 228 meseci #3
IF NOT EXISTS (SELECT DatumZav FROM RadniNalozi WHERE rNalId = @rNalId)
BEGIN
...
END
Potpis
Every hamster has his day.
Re: upravljenje greskama u storage procedurama 31.01.2008. u 10:19 · pre 228 meseci #4
Hvala, jedan glupi previd,
da bi i drugima bilo jasnije
pre rais_error: treba staviti RETURN i ne bi javljao gresku ako propadne kroz IF
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme