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.9.8.0&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)
dispError 【TAG】エラー時にメッセージを表示するか[true/false]を設定します。通常はstopErrorと併用(初期値: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, dispError, displayMsg, dyStart, ERR_MSG_ID, errCode, errMessage, executeCount, maxRowCount, names, outMessage, quotCheck, skipRowCount, sql, stopError, table, tableId, useTimeView, xssCheckBR, BUFFER_MIDDLE, CRbodyContentid, pageContextEVAL_BODY_BUFFERED, EVAL_BODY_TAGEVAL_BODY_AGAINEVAL_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.9.8.0&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, setDispError, setDisplayMsg, setMainTrans, setMaxRowCount, setModifyType, setNames, setNotfoundMsg, setOutMessage, setOverflowMsg, setQuotCheck, setSkipRowCount, setStopError, setStopZero, setTableId, setTrace, setUseBeforeHtmlTag, setUseTimeView, setXssCheckadd, 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, useXssCheckdoInitBody, getBodyContent, getPreviousOut, release, setBodyContentfindAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValueclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetParent, setPageContext, setParentpublic static final java.lang.String CMD_ENTRY
protected java.lang.String userDBType
public PlsqlUpdateTag()
public int doStartTag()
doStartTag インタフェース内 TagdoStartTag クラス内 QueryTagpublic int doEndTag()
doEndTag インタフェース内 TagdoEndTag クラス内 QueryTagprotected void release2()
protected void execute(Query query)
execute クラス内 QueryTagquery - オブジェクトprotected int[] getParameterRows()
getParameterRows クラス内 CommonTagSupportpublic void setDbType(java.lang.String type)
type - 定義のPL/SQL名public void setSelectedAll(java.lang.String all)
all - データを全件選択済み [true:全件選択済み/false:通常]public void setQueryType(java.lang.String id)
setQueryType クラス内 QueryTagid - Queryを発行する為の実クラスIDQueryのサブクラス,
Query.execute( String ,String , DBSysArg[] , DBUserArg[] )public void setTableModelCommit(java.lang.String flag)
flag - テーブルモデルの確定処理 [true:する/false:しない]Webアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.