[ sparc @ 31.01.2008. 09:27 ] @
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.
[ Fedya @ 31.01.2008. 09:53 ] @
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
[ Fedya @ 31.01.2008. 10:18 ] @
IF NOT EXISTS (SELECT DatumZav FROM RadniNalozi WHERE rNalId = @rNalId)
BEGIN
...
END
[ sparc @ 31.01.2008. 10:19 ] @
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