openGionopenGion
5.3.8.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
すべての実装されたインタフェース:
java.io.Serializable, javax.servlet.jsp.tagext.BodyTag, javax.servlet.jsp.tagext.IterationTag, javax.servlet.jsp.tagext.JspTag, javax.servlet.jsp.tagext.Tag, javax.servlet.jsp.tagext.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:あり

 ●使用例
    ・引数/プロシジャーを他の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 java.lang.String CMD_ENTRY
          command 引数に渡す事の出来る コマンド 登録"ENTRY"
protected  java.lang.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(java.lang.String type)
          【TAG】Query オブジェクトに渡す引数のタイプ定義(例:type名_ARRAY)。
 void setQueryType(java.lang.String id)
          【TAG】Query を発行する為のクラスIDを指定します(初期値:JDBCPLSQL)。
 void setSelectedAll(java.lang.String all)
          【TAG】データを全件選択済みとして処理するかどうか(true/false)を指定します(初期値:false)。
 java.lang.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, getLabel, getLabelInterface, getLanguage, getLongLabel, getMsglbl, getObject, getParameterNames, getRequest, getRequestAttribute, getRequestCacheData, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getUser, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseKey, 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 java.lang.String CMD_ENTRY
command 引数に渡す事の出来る コマンド 登録"ENTRY"

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

userDBType

protected java.lang.String userDBType
引数のタイプ定義

コンストラクタの詳細

PlsqlUpdateTag

public PlsqlUpdateTag()
メソッドの詳細

doStartTag

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

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

doEndTag

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

定義:
インタフェース javax.servlet.jsp.tagext.Tag 内の doEndTag
オーバーライド:
クラス QueryTag 内の doEndTag
戻り値:
int 後続処理の指示
変更履歴:
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 は、システムパラメータ で定義します。

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 (2005/01/31) setArguments 廃止、Query#execute に、引数をすべて追加
4.3.0.0 (2008/07/22) DBSysArgの引数に日付、PG、ユーザーIDを追加

getParameterRows

protected int[] getParameterRows()
表示データの HybsSystem.ROW_SEL_KEY を元に、選ばれた 行を 処理の対象とします。 rowNo[] が null の場合のみ、取込を行います。

オーバーライド:
クラス CommonTagSupport 内の getParameterRows
戻り値:
int[]
変更履歴:
4.0.0 (2005/01/31) getParameterRows() を使用するように変更

setDbType

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

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

setSelectedAll

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

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

setQueryType

public void setQueryType(java.lang.String id)
【TAG】Query を発行する為のクラスIDを指定します(初期値:JDBCPLSQL)。

オーバーライド:
クラス 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 インターフェースを継承したサブクラスです。
変更履歴:
3.5.4.2 (2003/12/15) JavaDocコメント用にメソッド追加。

toString

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

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

openGion 5.3.8.0

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