2009-06-03 10 views
0

多少複雑なパラメータ検証要件を処理する必要があります。 Oracle 8.1 DBに対してSQLレポート2005を使用しています。Reporting Servicesの必須パラメータ - Oracleからエラーを返す

いずれFooParmが 供給されなければならないか、 コードが供給されなければならない年擬似コード形式で未満1001

なければならないCodeStartとCodeEndとの間の差よりも長い期間を選択してはならないユーザ私が見たものから、

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

AND 

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

、これを達成する唯一の方法は、カスタムのフロントエンドからですが、私たちは既に持っているし、それがこの要求のために変更されることはありません。

問題を示すエラーを確認して返すOracleプロシージャを作成したいと考えています。

エラーが発生しますか?私はエラーログに書き込まれると仮定しており、ユーザーにはデフォルトのエラーページが表示されます。

関連するエラーメッセージを含むレコードセットを返す可能性があります。

他のアイデアはありますか?私はプロの報告をしていないので、私はこれについてすべて間違っているかもしれません。

答えて

1

私はRAISE_APPLICATION_ERRORへの呼び出しがそれをユーザーにするだろうと思ったでしょうか?

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

    <continue-your-code> 

    ... 

これは、Crystal Reportsを使用してPL/SQL関数を呼び出すときに役立ちました。うまくいけばうまくいきます。

+0

うまく働いた。 – Sam

関連する問題