Novo

Forum kao aplikacija na telefonu

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

  • 7 odgovora
  • 2.100 pregleda

Najnovija ↓

Problem sa pozivanjem procedure... 13.02.2012. u 18:00 · pre 179 meseci #1
Imam kreiranu proceduru koja bi trebalo da vrsi proveru i upis podataka, e sad nastaje problem kako da pozovem jednu proceduru vise puta u jednom upitu i da pozove sa tim vrednostima istu proceduru
Ovo je otprilike skracena procedura koju koristim...

CREATE DEFINER=`root`@`%` PROCEDURE `probnaprocedura`(idkolona int, vrednost decimal(11,2))
BEGIN
if
...
else
select probnaprocedura ((select xxx from t1 where t1.id=idkolona),vrednost)
end if
END

Da li je ovo nekako moguce izvesti? Kada se pozivaju procedure, dozvoljen je maksimalno jedan red, tj. ne mogu da koristim SELECT...

Hvala puno!
Re: Problem sa pozivanjem procedure... 13.02.2012. u 19:37 · pre 179 meseci #3
Ok, jasno mi je da treba da koristim stored proceduru.

Sta se desava sa delom gde mi treba upit select u pozivanju procedure?

CALL PROCEDURE((SELECT....),'XXX','XXX')

izbacuje mi gresku da je dozvoljen maksimalno jedan red u podupitu, kako ovo drugacije mogu da postavim?
Re: Problem sa pozivanjem procedure... 15.02.2012. u 15:33 · pre 179 meseci #5

CREATE DEFINER=`root`@`%` PROCEDURE `probnaprocedura`(idkolona int, vrednost decimal(11,2), provera varchar(2))
BEGIN
if provera='DA' then
update set t2 (...)
else
select probnaprocedura ((select xxx from t1 where t1.provera='NE'),vrednost, 'NE')
end if
END
Treba mi da prenesem vrednost select-a u proceduru, (select t1.id from t1 where t1.provera='NE').
Problem je sto ima vise zapisa iz baze koje treba proslediti u proceduru da bi se ti zapisi azurirali. Trigger mi ne odgovara, zbog nekih parametara koje samo mogu kroz proceduru da obradim...

Orginalna procedura je isuvise zamrsena, tako da je ovo neka jednostavnija forma onoga sto meni konkretno treba.
Re: Problem sa pozivanjem procedure... 15.02.2012. u 17:32 · pre 179 meseci #7
Problem je sto ja u select upitu imam kao rezultat vise redova...
Da je jedan to mi ne bi bio problem.

Re: Problem sa pozivanjem procedure... 15.02.2012. u 17:43 · pre 179 meseci #8
ne mozes da prosledis vise redova stored proceduri. niti ta tvoja procedura ume da procita vise redova. napravis kursor pa prodjes kroz result set i prozoves proceduru za svaki red...

generalno - nesto si ti tu mnogo lose osmislio, to si trebao da uradis sa trigerima (a to sto kazes da ti trigeri ne rade, to dodatno znaci da si lose osmislio)
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme