ďťż
 
SQL Server 2005: początkujący programista T-SQL ma problem ďťż
 
SQL Server 2005: początkujący programista T-SQL ma problem
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

SQL Server 2005: początkujący programista T-SQL ma problem



RAM - 11-05-2007 12:31
SQL Server 2005: początkujący programista T-SQL ma problem
  Dzień dobry,
Uczę się T-SQL i podczas pisania triggera (dodawanie pozycji PZ w systemie
magazynowym) mam taki błąd:

Msg 4145, Level 15, State 1, Procedure InsteadOfInsertPozycjePrzyjęć, Line 27
An expression of non-boolean type specified in a context where a condition is
expected, near 'RAISERROR'.

Oto mój kod:

SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO
CREATE TRIGGER InsteadOfInsertPozycjePrzyjęć
ON PozycjePrzyjęć
INSTEAD OF INSERT
AS
BEGIN
SET NOCOUNT ON;
DECLARE Przyjmowane CURSOR FORWARD_ONLY READ_ONLY FOR
SELECT i.Materiał, ms.Skład, s.ZablokujOperacje, i.Ilość,
ms.Ilość, ms.StanMaksymalny
FROM inserted AS i
INNER JOIN Dokumenty AS d ON i.Dokument = d.Numer
INNER JOIN Materiały AS m ON i.Materiał = m.Id
INNER JOIN Składy AS s ON d.SkładPrzyjmujący = s.Id
INNER JOIN MateriałyWSkładach AS ms ON i.Materiał =
ms.Materiał AND d.SkładPrzyjmujący = ms.Skład;
DECLARE @Materiał DECIMAL(10, 0);
DECLARE @Skład VARCHAR(10);
DECLARE @ZablokujOperacje BIT;
DECLARE @Ilość DECIMAL(8, 3);
DECLARE @IlośćNaSkładzie DECIMAL(8, 3);
DECLARE @StanMaksymalny DECIMAL(8, 3);
OPEN Przyjmowane;
FETCH FIRST FROM Przyjmowane
INTO @Materiał, @Skład, @ZablokujOperacje, @Ilość,
@IlośćNaSkładzie, @StanMaksymalny;
WHILE @@FETCH_STATUS = 0
BEGIN
-- Sprawdzenie blokady operacji na składzie:
IF @ZablokujOperacje
RAISERROR (N'Zablokowano operacje na składzie %s!',
16, 1, @Skład);
-- Sprawdzenie stanu maksymalnego:
IF @IlośćNaSkładzie + @Ilość > @StanMaksymalny
RAISERROR (N'Przykroczono stan maksymalny (%f)
materiału %s na składzie %s!', 16, 1, @StanMaksymalny, @Materiał, @Skład);
...
FETCH NEXT FROM Przyjmowane
INTO @Materiał, @Skład, @ZablokujOperacje, @Ilość,
@IlośćNaSkładzie, @StanMaksymalny;
END;
CLOSE Przyjmowane;
DEALLOCATE Przyjmowane;
END;
GO

Nie rozumiem tego błędu i nie wiem właściwie w którym wierszu jest błąd,
bo "Line 27" to w moim Express Edition to
WHILE @@FETCH_STATUS = 0
Może kompilator nie liczy wierszy
SET ANSI_NULLS ON;
SET QUOTED_IDENTIFIER ON;
i chodzi o wiersz:
IF @ZablokujOperacje
RAISERROR (N'Zablokowano operacje na składzie %s!',
16, 1, @Skład);
ale nie wiem co to jest źle...
Pomożecie?
Dziękuję bardzo.
/RAM/

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl





Robert Winkler - 11-05-2007 12:31

  Spróbuj napisać:

IF (@ZablokujOperacje = CAST(1 AS BIT))
RAISERROR (N'Zablokowano operacje na składzie %s!', 16, 1, @Skład);

Wydaje sie że dla T-SQL'a zmienna BIT nie jest tożsama
z wartoscią typu boolean.

--
____________
Robert Winkler




RAM - 11-05-2007 12:31

  Dziękuję bardzo, pomogło.

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= mysql i mysql-front, problem String line; if (line=="cos"){...}....problem Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?= [postgres] Problem z =?ISO-8859-2?Q?zmian=B1_struktury_i_z?==?ISO-8859-2?Q?ale=BFno=B6ciami=2E?= [oracle] =?ISO-8859-2?Q?zmia=BFd=BFony_przez_problem=3A_za?==?ISO-8859-2?Q?pytanie_do_hierarchi?= Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ] [PGSQL] czy ktos mial problemy z initdb pgsql 8.1 ? [MySQL] Problem z zapisem danych w bazie danych Problem z mysql - can't connect to MySQL/nietypowo...
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • ptsite.xlx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com