Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Tekst greške u Stored Procedure

[es] :: MySQL :: Tekst greške u Stored Procedure

[ Pregleda: 1270 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

cesare
Misko Petrovic

Član broj: 55805
Poruke: 201
*.dynamic.sbb.rs.



+1 Profil

icon Tekst greške u Stored Procedure06.04.2012. u 20:07 - pre 146 meseci
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 ...
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: Tekst greške u Stored Procedure09.04.2012. u 03:05 - pre 146 meseci
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
...


 
Odgovor na temu

[es] :: MySQL :: Tekst greške u Stored Procedure

[ Pregleda: 1270 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.