2009-06-03 6 views
0

J'ai besoin de gérer des conditions de validation de paramètres quelque peu compliquées. Nous utilisons SQL Reporting 2005 contre une base de données Oracle 8.1.Paramètres requis dans Reporting Services - Renvoyer les erreurs d'Oracle

L'utilisateur ne doit pas sélectionner une plage de dates plus d'un an Soit FooParm doit être fourni ou codes doivent être fournis et la différence entre CodeStart et CodeEnd doit être inférieure à 1001

Dans un format de code pseudo d'après ce que j'ai vu

(dateStart and dateEnd DIFF < 1 year AND !=0) 

AND 

(
    (FooParm !=0) 
    OR 
    (CodeStart AND CodeEnd < 1001 AND CodeStart!='' AND CodeEnd!='') 
) 

, la seule façon d'y parvenir est d'une extrémité avant sur mesure, mais nous avons déjà un et il ne sera pas modifié pour cette demande.

Je souhaite créer une procédure Oracle qui va vérifier et retourner une erreur indiquant le problème.

Une erreur sera-t-elle signalée à l'utilisateur? Je suppose qu'il sera juste écrit dans un journal des erreurs et l'utilisateur sera montré la page d'erreur par défaut.

Je pourrais éventuellement renvoyer un jeu d'enregistrements contenant le message d'erreur correspondant.

D'autres idées? Je ne suis pas pro de reportage, donc je vais peut-être aller à ce sujet tout faux.

Répondre

1

J'aurais pensé qu'un appel à RAISE_APPLICATION_ERROR ferait le chemin de l'utilisateur?

BEGIN 
    IF <your-parameter-validation> THEN 
     RAISE_APPLICATION_ERROR (
      num=> -20501, 
      msg=> 'Parameters are incorrect etc.'); 
    END IF; 

    <continue-your-code> 

    ... 

Cela a fonctionné pour nous quand nous utilisions Crystal Reports pour appeler une fonction PL/SQL .... espérons-le pour vous.

+0

Fonctionne très bien. – Sam

Questions connexes