參考手冊

MESSAGE 區塊

目的

根據函數回覆碼,指定顯示的訊息及採行的建議動作。

在 MESSAGE 區塊中定義一組回覆碼、對應訊息、以及建議動作。函數呼叫完成後, Net.Data 比較它的回覆碼與 MESSAGE 區塊中定義的回覆碼。如果函數的回覆碼符合 MESSAGE 區塊中定義的回覆碼, Net.Data 立即顯示訊息,並評估動作作,判斷應該繼續處理或跳出 Net.Data 巨集。

MESSAGE 區塊可以是整體範圍,也可以是區域單一 FUNCTION 區塊。 巨集最外層次定義的 MESSAGE 巨集,作為整體範圍。如果定義多個整體 MESSAGE 區塊, 僅最後一個區塊有效。如果 MESSAGE 區塊定義在 FUNCTION 區域中, 則該區域在所屬 FUNCTION 區塊的區域範圍中。有關回覆碼處理程序規則, 請參閱 Net.Data 管理程式設計指南 中的 MESSEAGE 部分。

語法

>>-%MESSAGE--{-------------------------------------------------->
 
      .------------------------------------------------------------------------.
      V                                                                        |
>--------+------------------------------------------------------------------+--+>
         '--+-| 回覆碼規格 |--+--:---| 訊息文字規格 |----+---------------+--'
            '-| SQLSTATE |----'                          '-| 動作規格 |--'
 
>----%--}------------------------------------------------------><
 
回覆碼規格
 
|---+-DEFAULT----------+----------------------------------------|
    +-+DEFAULT---------+
    +- -DEFAULT--------+
    +-+----+---訊息碼--+
    | +- --+           |
    | '-+--'           |
    '-include 陳述式---'
 
SQLSTATE
 
|---SQLSTATE--:------state_id-----------------------------------|
 
訊息文字規格
 
          .----------------.
          V                |
|----+-"-----+----------+--+---"---+----------------------------|
     |       +-字串-----+          |
     |       +-變數參照-+          |
     |       +-函數呼叫-+          |
     |       '-換行-----'          |
     |    .----------------.       |
     |    V                |       |
     +-{-----+----------+--+---%}--+
     |       +-字串-----+          |
     |       +-變數參照-+          |
     |       '-函數呼叫-'          |
     '-include 陳述式--------------'
 
動作規格
 
         .-EXIT-----.
|---+-:--+----------+-+-----------------------------------------|
    |    '-CONTINUE-' |
    '-include 陳述式--'
 

%MESSAGE
此區塊關鍵字定義一組回覆碼、相關訊息、以及傳回函數呼叫時 Net.Data 執行的動作。

回覆碼規格
一個正整數或負整數。Net.Data RETURN_CODE 變數值符合回覆碼規格值時, 訊息陳述式的剩餘資訊可以用來處理函數呼叫。您也可以為未特別在 MESSAGE 區塊中輸入的回覆碼,指定訊息。

+DEFAULT
此關鍵字可用來指定預設正訊息碼。 若 RETURN_CODE 大於 0,並且未 指定完全相符時,則 Net.Data 使用此訊息陳述式中的資訊將用來處理此函數呼叫。

-DEFAULT
此關鍵字可用來指定預設負訊息碼。若 RETURN_CODE 小於 0, 並且未指定完全相符時,則 Net.Data 使用此訊息陳述式中的資訊將用來處理此函數呼叫。

DEFAULT
此關鍵字可用來設定預設訊息碼。若下列條件皆符合時, Net.Data 使用此訊息陳述式中的資訊將用來處理此函數呼叫:
  • 若 RETURN_CODE 大於或小於零,且不為零
  • 若沒有完全相符指定的回覆碼時
  • 若 RETURN_CODE 大於或小於零,而 +DEFAULT 或 -DEFAULT 沒有指定的回覆碼時

訊息碼
此訊息碼指定處理期間可能發生的錯誤及警告。為一串從 0 到 9 的數字。

SQLSTATE
此關鍵字提供應用程式一般錯誤條件的一般碼。 SQLSTATE 值是根據併入在 SQL 標準中的 SQLSTATE 規格建立, 而撰寫程式碼方式在所有 IBM 上所施行的 SQL 都一樣。 此值與 Net.Data 變數 SQL_STATE 相符。

state_id
指 SQLSTATE。一個 5 字元 (位元組) 的英數字串, 其格式為 ccsss,其中 cc 表示類別,而 sss 表示次類別。

訊息文字規格
當 RETURN_CODE 符合現行訊息陳述式中的 return_code 值,或 SQL_STATE 變數符合現行訊息陳述式中的 SQLSTATE 值時,被傳送給 Web 瀏覽器的字串。

字串
字串中可使用任何英文字母、數字與標點符號。 如果字串出現在雙引號內,則不容許使用換行字元。

變數參照
傳回變數值,並以 $ 及 () 符號指定。例如: 如果 VAR='abc', 則 $(VAR) 傳回值 'abc'。 有關語法的詳細資訊, 請參閱變數參照

函數呼叫
呼叫一或多個 FUNCTION 或 MACRO_FUNCTION 區塊, 或一個具有指定引數的 Net.Data 內建函數。 有關語法及範例,請參閱函數呼叫 (@)

動作規格
指定當 RETURN_CODE 符合現行訊息陳述式中的 return_code 值,或 SQL_STATE 變數符合現行訊息陳述式中的 SQLSTATE 值時,Net.Data 所採行的動作。

EXIT
此關鍵字指定當發生訊息碼對應的錯誤或警告時,立即跳出巨集。 這是預設值。

CONTINUE
此關鍵字指定當發生訊息碼對應的錯誤或警告時,繼續處理。

include 陳述式
INCLUDE 陳述式。讀取及納入檔案到 Net.Data 巨集。 INCLUDE 陳述式可以出現在 MESSAGE 的任何地方。 有關語法及範例,請參閱 INCLUDE 陳述式

上下文

在這些上下文中可找到 MESSAGE 區塊:

限制

MESSAGE 區塊可以包含這些元素:

就 OS/390 而言︰無法從 SQL 函數內呼叫 SQL 函數。

範例

範例 1:區域 MESSAGE 區塊

%{ FUNCTION 區塊中的區域訊息區塊 %}
%FUNCTION(DTW_REXX) my_function() {
  %EXEC { my_command.cmd %}
%MESSAGE{
-601: {<h3>表格已建立,請返回並輸入您的名稱。</h3>
<p><a href="input">傳回</a>
%}
default: "<h3>無法繼續,因為錯誤 $(RETURN_CODE)</h3>"%}      :結束
  %}

範例 2:整體 MESSAGE 區塊

%{ 整體訊息區塊         %}
  %MESSAGE {
     -100     : "回覆碼 -100 的訊息"    : exit
      100     : "回覆碼 100 訊息"    : continue
   +default : {
此為超出一行的長訊息。
您可以在此訊息中使用 HTML 標籤,包括
鏈結與套表。%}   : continue
%}
 
%{ FUNCTION 區塊中的區域訊息區塊 %}
%FUNCTION(DTW_REXX) my_function() {
  %EXEC { my_command.cmd %}
  %MESSAGE {
     -100     : "回覆碼 -100 的訊息"    : exit
      100     : "回覆碼 100 訊息"    : continue
     -default : {
此為超出一行的長訊息。
您可以在此訊息中使用 HTML 標籤,包括
鏈結與套表。%}   : exit
  %}

範例 3:包含 INCLUDE 陳述式的 MESSAGE 區塊

 %message {
   %include "rc1000.msg"
   %include "rc2000.msg"
   %include "defaults.msg"
 %}                         


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]