を再利用するストアドプロシージャコード

同じ方法では、あなたとしてColdFusionのコードの断片からカスタムタグを作成できるテンプレートを、他のColdFusionからこれらのカスタムタグの呼び出しでは、ストアドプロシージャとほぼ同じことを行うことができます。ストアドプロシージャは、ストアドプロシージャとほぼ同じ方法では、ColdFusionから呼び出されますが、タグなしベースのインターフェイス、他の呼び出すことができます。そう、例えば、その場合は、InventoryItem行ItemNumber渡される値に基づいて取得するストアドプロシージャ、sp_GetInventoryItemている。あなたのe -コマースアプリケーション全体で、ユーザーがカタログをブラウズし、また管理作業のインベントリのアイテムを取得するために使うなどの製品情報を取得するsp_GetInventoryItemを使用します。今は別のストアドプロシージャをsp_GetInventoryItemを組み込むにしたいsp_DiscountItem、そのアイテムかどうかは、ユーザーは、ショッピングセッションの冒頭には、有効な割引クーポンコードを入力に基づいて価格が減額されます。場合には、インベントリのアイテムを取得し、そのような機能が必要か、コードの保守が独自のプロシージャに共通のコードの例を突破して必要に応じてそれらを呼び出すと、図のように簡単にできますが、各ストアドプロシージャでは、割引を実行するコードを繰り返すことができますコードです。

-この手順sp_DiscountItemのCREATE PROCEDURE sp_GetInventoryItem giiItemNumberがVarchar(15)、giiDescriptionがVarchar(40)出力、giiUnitPrice数値(12,2)出力、giiAvailableToSell整数出力@ giiComments @ @ @(@によって呼び出されますがVarchar(200)出力)のAS giiDescription =商品@ giiUnitPrice =単価@ giiAvailableToSell = AvailableToSell @ giiComments @ =コメントからInventoryItemのWHEREのSELECT
ItemNumber giiItemNumber返り= @行く-この手順は、sp_DiscountItemのCREATE PROCEDURE sp_GetAmountDue CouponCodeがVarchar(16)、AmountDue数値(12,2)出力)のように宣言償還ビット@ PercentDiscount数値(12,2 @ @(@によって呼び出される)償還=償還@ PercentDiscount = PercentDiscountからクーポンのWHERE CouponCode @ CouponCode = @のIF(ROWCOUNTを!= 1 @)返りのBEGIN @ -クーポンは存在しませんが、価格変更のIF終了日を選択償還= 1()戻りのBEGIN @ -クーポンはすでに償還;)エンド返りAmountDue *(1エンド他のBEGINのSELECT @ AmountDue = @の価格を変更する- @ PercentDiscount / 100行く-これはCREATE PROCEDURE sp_DiscountItem diCouponCodeがVarchar(16)(@と呼ばれている親の手順です@ diItemNumberがVarchar(15)、@ diDescriptionがVarchar(40)出力、diUnitPrice数値(12,2)出力、diAvailableToSell整数出力@ diCommentsがVarchar(200 @)出力)のASイネーブルsp_GetInventoryItem @(
diCouponCode @ giiItemNumber diItemNumber = @ diDescription出力= @ giiDescription @ = diUnitPrice出力、@ giiUnitPrice giiAvailableToSell = diAvailableToSell出力、@ @ diComments = @ giiComments @出力)イネーブルsp_GetAmountDue CouponCode(@ = AmountDue @ diUnitPrice出力= @)返り行く
  

初めてのことは今まで、私たちの頭近くの混乱を大きく開いて!どのパラメータを分割するようなことをコード化された出力は、どのようにこの1つのバックは、1つのように渡すし、どのへの入力は何ですか?まあ、ようやく考え出したその理にかなった方法で別のコールは、OUTPUTパラメータを使用して1つの手順を説明する方法です。あなたは、Adobe Acrobat出力パラメータTracing.pdfは、各手順について、図と各ステップで起こっているの平易な英語で説明を前項のリスト一度パラメータを処理を渡すの各ステップを繰り返し、一緒に含まれていますという名前のファイルを見つけます。我々は、単価のいずれかのOUTPUTパラメータのフォローアップは、完全な旅のすべてのストアドプロシージャを介して、それを使用して値がどのように買収され、パラメータの間で渡さ表示されます。私たちは強く、その文書を開いて、それぞれに従ってしばらく時間がかかることをお勧めプロセスのステップ。実際に、ColdFusionアプリケーションでストアドプロシージャを利用するには、完全にこの複雑なトピックを理解する必要があります。私たちが、次の番号のリスト内の各ステップの平易な英語の説明を繰り返しているとして、本当に役立つそれらを読むの手で図を、プロセスには、ColdFusionから呼び出されている手順sp_DiscountItemを持つすべての起動は次のとおり:

1。 sp_DiscountItem最初のストアドプロシージャが呼び出されます。 diUnitPrice出力パラメータ@ NULL値をオフに開始、この時点で、@ diUnitPrice後にして、クライアントアプリケーションに値を返す実行が完了したバックアップsp_DiscountItemから値を受け取るだけで"空のバケツ"です。場合diUnitPrice @の値を実行中に、diUnitPriceように、新しい値を任意のアプリケーションまたはプロシージャを呼び出しで使用することができますを@に変え、その新しい値を戻すも何も出力しない出力sp_DiscountItem"に伝えます。"もし@ diUnitPriceしていない後sp_DiscountItem実行が終了すると、OUTPUT修飾子が、それがNULLのままだ。

2。 @ diUnitPrice値にフィードバックされているsp_GetInventoryItemへの呼び出しのgiiItemUnitPrice OUTPUTパラメータの@。今のところ、それはまだほんのNULL値です。

3。 @ giiUnitPriceは、NULL値を@ diUnitPriceが提供するとすぐにsp_GetInventoryItemを呼び出す準備ができて初期化します。

4。 sp_GetInventoryItem今のOUTPUTパラメータとして@ giiUnitPriceと呼ばれそれでも、NULL値が含まれます。この時点では唯一の仕事は、にsp_GetInventoryItem価値を置くことが、空のバケットを提供することです。

5。後sp_GetInventoryItem実行すると、それは、OUTPUTパラメータに@ giiUnitPrice InventoryItem.UnitPriceの列の値を選択します。

6。 @ giiUnitPrice現在の単価は、NULL値は、インベントリのアイテムではなく、から取得されています。

7。 giiUnitPriceので@ sp_GetInventoryItemのOUTPUTパラメータですが、その新しい値を出力へはわずかsp_GetInventoryItemと呼ばれるgiiUnitPrice内部sp_DiscountItem、@に変えています。

8。 @ giiUnitPriceのこの新しい値はさらに出力バックdiUnitPriceパラメータは、もともとgiiUnitPriceを@にNULL値を与え、@ diUnitPriceため、@ sp_GetInventoryItemへの呼び出しでは、OUTPUT修飾子がに。今すぐ@ diUnitPrice同じ値sp_GetInventoryItemから返されています。

9。今すぐdiUnitPrice @に格納されたインベントリのアイテムのレコードから割引価格値を持って、あなたの可能性価格削減のためのsp_GetAmountDueにこの値をフィードすることができます。

10。 @ AmountDue値diUnitPrice @で、今sp_GetAmountDueを呼び出す準備が格納され初期化されます。

11。 sp_GetAmountDue今すぐ@ AmountDue OUTPUTパラメータと同様に呼ばれます。現在の単価の値は、インベントリのアイテムのレコードから返されています。

12。その場合は、変更後の値AmountDue @で復元されませんsp_GetAmountDueまたはAmountDue @に格納されたが、値を変更しない場合があります。

13。 AmountDueので@ sp_GetAmountDueのOUTPUTパラメータですが、その新しい値を出力へはわずかsp_GetAmountDueと呼ばれるAmountDue内部sp_DiscountItem、@に変えています。

14。この新しい値を@ AmountDueさらに出力バックdiUnitPriceパラメータ@はもともとAmountDueを@に変更前の単位価格値diUnitPriceため、@フィードバックにされているコールsp_GetAmountDueするには、OUTPUT修飾しています。diUnitPrice今すぐ@(おそらく)変更ユニットが含まれ価格の値sp_GetAmountDueから返されます。

15。 diUnitPriceので@ sp_DiscountItemのOUTPUTパラメータdiUnitPrice @その最後の可能性は、最初の場所に呼ばれるは、ColdFusionアプリケーションに値を変更出力することができます。

記事は、マイケルパターソン提出


免責事項:弊社のウェブサイトは、この資料の内容については責任を負いません。 Webarticles無料の情報リソースです。
重要: この記事は、""自動ソフトウェアによって翻訳されたストアドプロシージャコードを再利用する。大変申し訳ございませんが発生した可能性があります任意のスペルミスを感じている。お客様のご理解いただき、ありがとうございます。


Online: 352 users browsing the articles directory