[ Valerij Zajcev @ 10.03.2010. 12:20 ] @
Imam upit, recimo
Code:

Select * From tblDroid td Where td = 'UF579'

E sada ja posaljem parametar ovom upitu koji postoji i sve je ok, ali problem se javi kada ne postoji (recimo da ne postoji UF579) i onda mi dalje na reportima, nebitno, vrati nista prazan red. Problem je sto ovo radim preko report-a i izvozim u XML i XML koji dobijem ima zaglavlje pa ne mogu da ispitam da li je rezultat null. Jedina opcija koju sam smislio je da nekako iz upita dignem neki exception koji ce aplikaicji da vrati gresku?
Kako to da izvedem?
[ Comii @ 10.03.2010. 15:36 ] @
Pokusaj nešto ovako:

BEGIN
Select * From tblDroid td Where td = $tvojparametar;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE("Podaci nisu pronađeni");
END;
[ darkosos @ 13.03.2010. 08:56 ] @
Ili sa RAISE_APPLICATION_ERROR
[ djoka_l @ 15.03.2010. 12:57 ] @
Stavi upit u triger BEFORE_REPORT ili AFTER_PARAMETER_FORM, zavisno od toga da li se parametar prosleđuje iz aplikacije ili se učitava na parametarskoj formi.

Code (plsql):

FUNCTION BeforeReport RETURN BOOLEAN IS
  dummy tblDroid%ROWTYPE
BEGIN

  SELECT *
  INTO dummy
  FROM tblDroid WHERE td = 'UF579' ;
  RETURN (TRUE);

EXCEPTION
  WHEN NO_DATA_FOUND THEN RAISE;
  WHEN OTHERS THEN RETURN (TRUE);;
END;