Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 1 odgovor
  • 1.754 pregleda

Najnovija ↓

Tekst greške u Stored Procedure 06.04.2012. u 21:07 · pre 177 meseci #1
Pozdrav svima !!!

Nisam puno vičan u korišćenju SQL jezika. Zato sam uz pomoć Googlanja došao do sledeće procedure.

Code:

BEGIN
  DECLARE BrojKorisnika INT DEFAULT 0;
  DECLARE IdPrijavljenogKorisnika CHAR(40) DEFAULT '';

  DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET IdPrijavljenogKorisnika='SQLEXCEPTION';
  DECLARE CONTINUE HANDLER FOR SQLWARNING SET IdPrijavljenogKorisnika='SQLWARNING';

  SELECT COUNT(IdBroj) FROM tblkorisnici WHERE BINARY KIme=PKIme AND BINARY KSifra=PKSifra INTO BrojKorisnika;
    IF BrojKorisnika=1 THEN
     SET AUTOCOMMIT=0;
     START TRANSACTION;
     UPDATE tblkorisnici SET Akcija1='b' WHERE BINARY KIme=PKIme AND BINARY KSifra=PKSifra;
     IF IdPrijavljenogKorisnika='' THEN
        COMMIT; 
        SELECT IdBroj FROM tblkorisnici WHERE BINARY KIme=PKIme AND BINARY KSifra=PKSifra INTO IdPrijavljenogKorisnika;
         ELSE
        ROLLBACK;
     END IF;     
  END IF;
  SELECT IdPrijavljenogKorisnika;
END


Napravio sam tabelu tblkorisnici koja ima polja IdBroj,KIme,KSifra i Akcija, probe radi. Gornja procedura treba da izmeni polje Akcija ako je zadovoljen uslov i vrati IdBroj izmenjenog korisnika. Ako se desi neka greška (što sam namerno prouzrokovao sa Akcija1 umesto Akcija u UPDATE redu, vraća se vrednost 'SQLEXCEPTION'. To je i moje pitanje. Kako da umesto ovoga procedura u slučaju greške vrati kod i tekst nastale greške ?

Unapred hvala ...
Re: Tekst greške u Stored Procedure 09.04.2012. u 04:05 · pre 177 meseci #2
samo u 5.5 i kasnije

http://dev.mysql.com/doc/refman/5.5/en/resignal.html

Code:

BEGIN
  DECLARE BrojKorisnika INT DEFAULT 0;
  DECLARE IdPrijavljenogKorisnika CHAR(40) DEFAULT '';

  DECLARE EXIT HANDLER FOR SQLEXCEPTION
  BEGIN
    SET @error_count = @error_count + 1;
    RESIGNAL; 
  END;

  SELECT COUNT(IdBroj) FROM tblkorisnici WHERE BINARY KIme=PKIme AND BINARY KSifra=PKSifra INTO BrojKorisnika;
IF BrojKorisnika=1 THEN
...

Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme