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を指定します(<a href="/gf/jsp/DOC03/index.jsp?command=NEW&GAMENID=DOC03&VERNO=6.8.2.4&VALUENAME=queryType" target="CONTENTS">初期値:JDBCPLSQL</a>) command 【TAG】コマンド (NEW,RENEW)をセットします(PlsqlUpdateTag,UpdateTag の場合は、ENTRY) scope 【TAG】キャッシュする場合のスコープ[request/page/session/application]を指定します(初期値: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) useTimeView 【TAG】処理時間を表示する TimeView を表示するかどうかを指定します (初期値:VIEW_USE_TIMEBAR[=true])。 caseKey 【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null) caseVal 【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null) caseNN 【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:判定しない) caseNull 【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:判定しない) caseIf 【TAG】指定の値が、true/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; /
修飾子とタイプ | フィールドと説明 |
---|---|
static java.lang.String |
CMD_ENTRY
command 引数に渡す事の出来る コマンド 登録"ENTRY"
|
protected java.lang.String |
userDBType
引数のタイプ定義
|
CMD_NEW, CMD_RENEW, command, displayMsg, dyStart, ERR_MSG_ID, errCode, errMessage, executeCount, maxRowCount, names, outMessage, quotCheck, skipRowCount, sql, stopError, table, tableId, useTimeView, xssCheck
BR, BUFFER_MIDDLE, CR
bodyContent
id, pageContext
EVAL_BODY_BUFFERED, EVAL_BODY_TAG
EVAL_BODY_AGAIN
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を指定します(<a href="/gf/jsp/DOC03/index.jsp?command=NEW&GAMENID=DOC03&VERNO=6.8.2.4&VALUENAME=queryType" target="CONTENTS">初期値:JDBCPLSQL</a>)。
|
void |
setSelectedAll(java.lang.String all)
【TAG】データを全件選択済みとして処理するかどうか[true/false]を指定します(初期値:false)。
|
void |
setTableModelCommit(java.lang.String flag)
【TAG】テーブルモデルに対する確定処理を行うかどうかを指定します(初期値:true)。
|
java.lang.String |
toString()
このオブジェクトの文字列表現を返します。
|
doAfterBody, getRequest, setCheckNames, setCommand, setDbid, setDisplayMsg, setMainTrans, setMaxRowCount, setModifyType, setNames, setNotfoundMsg, setOutMessage, setOverflowMsg, setQuotCheck, setSkipRowCount, setStopError, setStopZero, setTableId, setTrace, setUseBeforeHtmlTag, setUseTimeView, setXssCheck
add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLASTAttri, getLongLabel, getMsg, getMsglbl, getNVLAttri, getObject, getParameterNames, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getSumRequestValue, getTagName, getTransaction, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, makeUrl, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseIf, 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
doInitBody, getBodyContent, getPreviousOut, release, setBodyContent
findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getParent, setPageContext, setParent
public static final java.lang.String CMD_ENTRY
protected java.lang.String userDBType
public PlsqlUpdateTag()
6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor. |
public int doStartTag()
doStartTag
インタフェース内 Tag
doStartTag
クラス内 QueryTag
6.3.4.0 (2015/08/01) caseKey,caseVal,caseNN,caseNull,caseIf 属性対応 |
6.4.3.4 (2016/03/11) String配列 から、Setに置き換えます。 |
public int doEndTag()
doEndTag
インタフェース内 Tag
doEndTag
クラス内 QueryTag
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) アクセスカウント不具合対応 |
6.3.4.0 (2015/08/01) caseKey,caseVal,caseNN,caseNull,caseIf 属性対応 |
6.4.1.2 (2016/01/22) QueryTag.errMsgId → QueryTag.ERR_MSG_ID refactoring |
6.4.3.4 (2016/03/11) String配列 から、Setに置き換えます。 |
protected void release2()
protected void execute(Query query)
execute
クラス内 QueryTag
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によるテーブルモデル確定処理のコントロール |
6.4.2.0 (2016/01/29) DateSet.getDate( String ) を利用するように修正します。 |
protected int[] getParameterRows()
getParameterRows
クラス内 CommonTagSupport
4.0.0.0 (2005/01/31) getParameterRows() を使用するように変更 |
public void setDbType(java.lang.String type)
type
- 定義のPL/SQL名ここでは、type 定義のPL/SQL名を指定します。 行を表す配列は、type名_ARRAY という名称です。
public void setSelectedAll(java.lang.String all)
all
- データを全件選択済み [true:全件選択済み/false:通常]全てのデータを選択済みデータとして扱って処理します。 全件処理する場合に、(true/false)を指定します。 初期値は false です。
public void setQueryType(java.lang.String id)
setQueryType
クラス内 QueryTag
id
- Queryを発行する為の実クラスIDQueryのサブクラス
,
Query.execute( String ,String , DBSysArg[] , DBUserArg[] )
引数指定のINSERT/UPDATE文を実行する場合の、queryType 属性を使用します。 このタグでは、execute( String ,String , DBSysArg[] , DBUserArg[] )を実行します。 代表的なクラスとして、"JDBCPLSQL" が標準で用意されています。 タグにより使用できる/出来ないがありますが、これは、org.opengion.hayabusa.db 以下の Query_**** クラスの **** を与えます。 これらは、Query インターフェースを継承したサブクラスです。 <a href="/gf/jsp/DOC03/index.jsp?command=NEW&GAMENID=DOC03&VERNO=6.8.2.4&VALUENAME=queryType" target="CONTENTS">Query_**** クラス</a>
3.5.4.2 (2003/12/15) JavaDocコメント用にメソッド追加。 |
public void setTableModelCommit(java.lang.String flag)
flag
- テーブルモデルの確定処理 [true:する/false:しない]PlsqlUpdateタグで、エラーがなかった場合は通常、テーブルモデルの改廃に従って処理が行われます。 (改廃Dについては削除処理を行い、その他については改廃を元に戻す) このパラメータをfalseに指定すると、テーブルモデルに対する処理を行いません。 これは、例えばPL/SQLでエラーチェックのみを行いたい場合に有効です。 初期値はtrue(処理を行う)です。
5.5.5.2 (2012/08/10) 新規作成 |
Webアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.