openGionopenGion
5.8.4.0

org.opengion.hayabusa.taglib
クラス PlsqlUpdateTag

java.lang.Object
  上位を拡張 javax.servlet.jsp.tagext.TagSupport
      上位を拡張 javax.servlet.jsp.tagext.BodyTagSupport
          上位を拡張 org.opengion.hayabusa.taglib.CommonTagSupport
              上位を拡張 org.opengion.hayabusa.taglib.QueryTag
                  上位を拡張 org.opengion.hayabusa.taglib.PlsqlUpdateTag
すべての実装されたインタフェース:
Serializable, BodyTag, IterationTag, JspTag, Tag, TryCatchFinally

public class PlsqlUpdateTag
extends QueryTag

PLSQLをCALLしてデータベースにアクセスするタグです。 queryType = "JDBCPLSQL" が、標準で用意されています。 queryType と 実際のJavaクラスとの関連付けは、システムリソースの Query_JDBCPLSQL 属性です。 DBTableModel内のデータを 配列でPL/SQLに渡してDB登録します。 ※ このタグは、Transaction タグの対象です。

関連項目:
直列化された形式
形式サンプル:
 ●形式:<og:plsqlUpdate command="…" names="…" dbType="…" queryType="JDBCPLSQL" >{plsql(?,?,?,?,?)} <og:plsqlUpdate>
 ●body:あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を解析します)

 ●Tag定義:
   <og:plsqlUpdate
       queryType          【TAG】Query を発行する為のクラスIDを指定します({@og.doc03Link queryType 初期値:JDBCPLSQL})
       command            【TAG】コマンド(NEW,RENEW)をセットします(PlsqlUpdateTag,UpdateTag の場合は、ENTRY)
       scope              【TAG】キャッシュする場合のスコープ[request/page/session/applicaton]を指定します(初期値:session)
       maxRowCount        【TAG】(通常は使いません)データの最大読み込み件数を指定します (初期値:DB_MAX_ROW_COUNT[=1000])(0:[無制限])
       skipRowCount       【TAG】(通常は使いません)データの読み始めの初期値を指定します
       notfoundMsg        【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした])
       names              【TAG】PL/SQLを利用する場合の引数にセットすべき データの名称をCSV形式で複数指定します
       dbType             【TAG】Queryオブジェクトに渡す引数のタイプ定義(例:type名_ARRAY)
       selectedAll        【TAG】データを全件選択済みとして処理するかどうか[true/false]を指定します(初期値:false)
       tableId            【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します
       dbid               【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します
       stopError          【TAG】PLSQL/SQL処理エラーの時に処理を中止するかどうか[true/false]を設定します(初期値:true)
       tableModelCommit   【TAG】テーブルモデルの確定処理を行うかどうか[true/false]を設定します(初期値:true)
       debug              【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)
   >   ... Body ...
   </og:plsqlUpdate>

 ●使用例
    ・引数/プロシジャーを他のJSPから渡す場合
    【copy.jsp】
        <og:hidden name="names" value="UNIQ,USRID,ECNO,EDBN" />
        <og:hidden name="SQL" value="{ call RKP0271E.RK0271E( ?,?,?,?,? ) }" />
    【entry.jsp】
        <og:plsqlUpdate
            command    = "{@command}"
            names      = "{@names}"         →PL/SQLに渡す引数(配列)のカラム名
            dbType     = "RK0271ARG"             →PL/SQLに渡す引数(配列)の定義ファイル名
            queryType  = "JDBCPLSQL" >
        {@SQL}                              →CALLするPL/SQL
        </og:plsqlUpdate>

    ・引数/プロシジャーを直接書く場合
    【entry.jsp】
        <og:plsqlUpdate
            command    = "{@command}"
            names      = "UNIQ,USRID,ECNO,EDBN"  →PL/SQLに渡す引数(配列)のカラム名
            dbType     = "RK0271ARG"             →PL/SQLに渡す引数(配列)の定義ファイル名
            queryType  = "JDBCPLSQL" >
        { call RKP0271E.RK0271E( ?,?,?,?,? )}    →CALLするPL/SQL
        </og:plsqlUpdate>

    <<参考>>
    ・RKP0271E.RK0271E( ?,?,?,?,? )の「?」の意味
        (RKP0271E.spc)------------------------------------------------------------
        CREATE OR REPLACE PACKAGE RKP0271E AS
        PROCEDURE RK0271E(
             P_KEKKA    OUT    NUMBER           -- 1個目の「?」⇒結果 0:正常 1:警告 2:異常
            ,P_ERRMSGS  OUT    ERR_MSG_ARRAY    -- 2個目の「?」⇒エラーメッセージ配列
            ,P_NAMES     IN    VARCHAR2         -- 3個目の「?」⇒カラム名チェック用文字列
            ,P_SYSARGS   IN    SYSARG_ARRAY     -- 4個目の「?」⇒登録条件配列(改廃(A:追加/C:変更/D:削除)等がセットされます)
            ,P_RK0271    IN    RK0271ARG_ARRAY  -- 5個目の「?」⇒登録データ配列

    ・RK0271ARGの定義の仕方
        (RK0271ARG.sql)------------------------------------------------------------
        DROP TYPE RK0271ARG_ARRAY;
        CREATE OR REPLACE TYPE RK0271ARG AS OBJECT
        (
             UNIQ                VARCHAR2(11)
            ,USRID               VARCHAR2(5)
            ,ECNO                VARCHAR(7)
            ,EDBN                VARCHAR(2)
        ) ;
        /
        CREATE OR REPLACE TYPE RK0271ARG_ARRAY AS VARRAY(100) OF RK0271ARG;
        /
機能分類
DB登録
バージョン
4.0
作成者
Kazuhiko Hasegawa
導入されたバージョン:
JDK5.0,

フィールドの概要
static String CMD_ENTRY
          command 引数に渡す事の出来る コマンド 登録"ENTRY"
protected  String userDBType
          引数のタイプ定義
 
クラス org.opengion.hayabusa.taglib.QueryTag から継承されたフィールド
CMD_NEW, CMD_RENEW, command, displayMsg, dyStart, errCode, errMessage, errMsgId, executeCount, maxRowCount, names, outMessage, quotCheck, skipRowCount, sql, stopError, table, tableId, xssCheck
 
クラス javax.servlet.jsp.tagext.BodyTagSupport から継承されたフィールド
bodyContent
 
クラス javax.servlet.jsp.tagext.TagSupport から継承されたフィールド
id, pageContext
 
インタフェース javax.servlet.jsp.tagext.BodyTag から継承されたフィールド
EVAL_BODY_BUFFERED, EVAL_BODY_TAG
 
インタフェース javax.servlet.jsp.tagext.IterationTag から継承されたフィールド
EVAL_BODY_AGAIN
 
インタフェース javax.servlet.jsp.tagext.Tag から継承されたフィールド
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
 
コンストラクタの概要
PlsqlUpdateTag()
           
 
メソッドの概要
 int doEndTag()
          Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
 int doStartTag()
          Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
protected  void execute(Query query)
          Query を実行します。
protected  int[] getParameterRows()
          表示データの HybsSystem.ROW_SEL_KEY を元に、選ばれた 行を処理の対象とします。
protected  void release2()
          タグリブオブジェクトをリリースします。
 void setDbType(String type)
          【TAG】Queryオブジェクトに渡す引数のタイプ定義(例:type名_ARRAY)。
 void setQueryType(String id)
          【TAG】Query を発行する為のクラスIDを指定します(<a href="/gf/jsp/DOC03/index.jsp?command=NEW&GAMENID=DOC03&VERNO=5.8.4.0&VALUENAME=queryType" target="CONTENTS">初期値:JDBCPLSQL</a>)。
 void setSelectedAll(String all)
          【TAG】データを全件選択済みとして処理するかどうか[true/false]を指定します(初期値:false)。
 void setTableModelCommit(String flag)
          【TAG】テーブルモデルに対する確定処理を行うかどうかを指定します(初期値:true)。
 String toString()
          このオブジェクトの文字列表現を返します。
 
クラス org.opengion.hayabusa.taglib.QueryTag から継承されたメソッド
doAfterBody, getRequest, setCheckNames, setCommand, setDbid, setDisplayMsg, setMainTrans, setMaxRowCount, setModifyType, setNames, setNotfoundMsg, setOutMessage, setOverflowMsg, setQuotCheck, setSkipRowCount, setStopError, setStopZero, setTableId, setTrace, setUseBeforeHtmlTag, setXssCheck
 
クラス org.opengion.hayabusa.taglib.CommonTagSupport から継承されたメソッド
add, add, addEventColumn, addEventColumn, check, check, commitTableObject, debugPrint, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLASTAttri, getLongLabel, getMsglbl, getNVLAttri, getObject, getParameterNames, getRequest, getRequestAttribute, getRequestCacheData, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseKey, setCaseNN, setCaseNull, setCaseVal, setContextAttribute, setCookie, setDebug, setLanguage, setLbl, setNoTransitionRequest, setObject, setObject, setParameterNames, setParameterRows, setRequestAttribute, setRequestCacheData, setScope, setSessionAttribute, setUserInfo, startQueryTransaction, sys, sysBool, sysInt, useMainTrans, useQuotCheck, useTag, useXssCheck
 
クラス javax.servlet.jsp.tagext.BodyTagSupport から継承されたメソッド
doInitBody, getBodyContent, getPreviousOut, release, setBodyContent
 
クラス javax.servlet.jsp.tagext.TagSupport から継承されたメソッド
findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
インタフェース javax.servlet.jsp.tagext.Tag から継承されたメソッド
getParent, setPageContext, setParent
 

フィールドの詳細

CMD_ENTRY

public static final String CMD_ENTRY
command 引数に渡す事の出来る コマンド 登録"ENTRY"

関連項目:
定数フィールド値

userDBType

protected String userDBType
引数のタイプ定義

コンストラクタの詳細

PlsqlUpdateTag

public PlsqlUpdateTag()
メソッドの詳細

doStartTag

public int doStartTag()
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。

定義:
インタフェース Tag 内の doStartTag
オーバーライド:
クラス QueryTag 内の doStartTag
戻り値:
後続処理の指示

doEndTag

public int doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。

定義:
インタフェース Tag 内の doEndTag
オーバーライド:
クラス QueryTag 内の doEndTag
戻り値:
後続処理の指示
変更履歴:
3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。
3.5.5.2 (2004/04/02) TaglibUtil.makeHTMLErrorTable メソッドを利用
3.6.0.8 (2004/11/19) DBTableModel をセーブする時に、トランザクションチェックを行います。
3.6.1.0 (2005/01/05) オーバーフロー時と登録件数の表示をコメントします。
4.3.3.0 (2008/09/22) 検索結果を、"DB.ERR_CODE" キーでリクエストにセットする。
4.3.3.0 (2008/09/22) 属性 stopError の設定により、JSP処理を中止するかどうかを制御します。
4.3.5.7 (2009/03/22) アクセスカウント不具合対応

release2

protected void release2()
タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。

オーバーライド:
クラス QueryTag 内の release2
変更履歴:
2.0.0.4 (2002/09/27) カスタムタグの release() メソッドを、追加
3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。
3.5.2.0 (2003/10/20) sysDBType 廃止。SYSARG は、システムパラメータ で定義します。
5.5.5.2 (2012/08/10) isTableModelCommit追加

execute

protected void execute(Query query)
Query を実行します。

オーバーライド:
クラス QueryTag 内の execute
パラメータ:
query - オブジェクト
変更履歴:
2.1.2.3 (2002/12/02) データベース更新時に、更新フラグをセットするように変更
3.5.0.0 (2003/09/17) カラム名ではなく、カラム番号を先に求めておく方式に変更。
3.5.2.0 (2003/10/20) 内部オブジェクトタイプ名を システムパラメータ で定義します。
3.5.4.2 (2003/12/15) HTMLTableViewForm クラス名変更(⇒ ViewForm_HTMLTable)
3.5.6.0 (2004/06/18) DBRowHeader のパッケージプライベート化に伴なう変更
4.0.0.0 (2005/01/31) setArguments 廃止、Query#execute に、引数をすべて追加
4.3.0.0 (2008/07/22) DBSysArgの引数に日付、PG、ユーザーIDを追加
5.5.5.2 (2012/08/10) isTableModelCommitによるテーブルモデル確定処理のコントロール

getParameterRows

protected int[] getParameterRows()
表示データの HybsSystem.ROW_SEL_KEY を元に、選ばれた 行を処理の対象とします。

オーバーライド:
クラス CommonTagSupport 内の getParameterRows
戻り値:
選択行の配列
変更履歴:
4.0.0.0 (2005/01/31) getParameterRows() を使用するように変更

setDbType

public void setDbType(String type)
【TAG】Queryオブジェクトに渡す引数のタイプ定義(例:type名_ARRAY)。

パラメータ:
type - 定義のPL/SQL名
説明:
 ここでは、type 定義のPL/SQL名を指定します。
 行を表す配列は、type名_ARRAY という名称です。

setSelectedAll

public void setSelectedAll(String all)
【TAG】データを全件選択済みとして処理するかどうか[true/false]を指定します(初期値:false)。

パラメータ:
all - データを全件選択済み [true:全件選択済み/false:通常]
説明:
 全てのデータを選択済みデータとして扱って処理します。
 全件処理する場合に、(true/false)を指定します。
 初期値は false です。

setQueryType

public void setQueryType(String id)
【TAG】Query を発行する為のクラスIDを指定します(<a href="/gf/jsp/DOC03/index.jsp?command=NEW&GAMENID=DOC03&VERNO=5.8.4.0&VALUENAME=queryType" target="CONTENTS">初期値:JDBCPLSQL</a>)。

オーバーライド:
クラス QueryTag 内の setQueryType
パラメータ:
id - Query を発行する為の実クラス ID
関連項目:
Queryのサブクラス, Query.execute( String ,String , DBSysArg[] , DBUserArg[] )
説明:
 引数指定のINSERT/UPDATE文を実行する場合の、queryType 属性を使用します。
 このタグでは、execute( String ,String , DBSysArg[] , DBUserArg[] )を実行します。
 代表的なクラスとして、"JDBCPLSQL" が標準で用意されています。

 タグにより使用できる/出来ないがありますが、これは、org.opengion.hayabusa.db
 以下の Query_**** クラスの **** を与えます。
 これらは、Query インターフェースを継承したサブクラスです。
 {@og.doc03Link queryType Query_**** クラス}
変更履歴:
3.5.4.2 (2003/12/15) JavaDocコメント用にメソッド追加。

setTableModelCommit

public void setTableModelCommit(String flag)
【TAG】テーブルモデルに対する確定処理を行うかどうかを指定します(初期値:true)。

パラメータ:
flag - テーブルモデルに対する処理を行うかどうか
説明:
 PlsqlUpdateタグで、エラーがなかった場合は通常、テーブルモデルの改廃に従って処理が行われます。
 (改廃Dについては削除処理を行い、その他については改廃を元に戻す)

 このパラメータをfalseに指定すると、テーブルモデルに対する処理を行いません。
 これは、例えばPL/SQLでエラーチェックのみを行いたい場合に有効です。
 初期値はtrue(処理を行う)です。
変更履歴:
5.5.5.2 (2012/08/10) 新規作成

toString

public String toString()
このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。

オーバーライド:
クラス QueryTag 内の toString
戻り値:
このクラスの文字列表現

openGion 5.8.4.0

Webアプリケーションフレームワーク openGion
SourceForge.JPCopyright (c) 2009 The openGion Project.