001 /* 002 * Copyright (c) 2009 The openGion Project. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 013 * either express or implied. See the License for the specific language 014 * governing permissions and limitations under the License. 015 */ 016 package org.opengion.hayabusa.taglib; 017 018 import org.opengion.hayabusa.common.HybsSystem; 019 import org.opengion.hayabusa.common.HybsSystemException; 020 import org.opengion.hayabusa.db.DBTableModel; 021 import org.opengion.hayabusa.db.Query; 022 import org.opengion.hayabusa.db.DBSysArg; 023 import org.opengion.hayabusa.db.DBUserArg; 024 import org.opengion.hayabusa.resource.GUIInfo; 025 026 import org.opengion.fukurou.util.ErrorMessage; 027 import org.opengion.fukurou.util.StringUtil ; 028 import static org.opengion.fukurou.util.StringUtil.nval ; 029 030 /** 031 * PLSQLã‚’CALLã—ã¦ãƒ??タベã?スã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã‚¿ã‚°ã§ã™ã? 032 * queryType = "JDBCPLSQL" ãŒã?標準ã§ç”¨æ„ã•れã¦ã?¾ã™ã? 033 * queryType 㨠実際ã®Javaクラスã¨ã®é–¢é€£ä»˜ã‘ã¯ã€ã‚·ã‚¹ãƒ?ƒ リソース㮠Query_JDBCPLSQL 属æ?ã§ã™ã? 034 * 035 * DBTableModelå†??ãƒ??ã‚¿ã‚?é…å?ã§PL/SQLã«æ¸¡ã—ã¦DB登録ã—ã¾ã™ã? 036 * 037 * ※ ã“ã?ã‚¿ã‚°ã¯ã€Transaction ã‚¿ã‚°ã®å¯¾è±¡ã§ã™ã? 038 * 039 * @og.formSample 040 * â—å½¢å¼ï¼?lt;og:plsqlUpdate command="…" names="…" dbType="…" queryType="JDBCPLSQL" >{plsql(?,?,?,?,?)} <og:plsqlUpdate> 041 * â—body?šã‚ã‚?EVAL_BODY_BUFFERED:BODYを評価ã—ã?{@XXXX} ã‚’è§£æžã—ã¾ã? 042 * 043 * â—Tag定義?? 044 * <og:plsqlUpdate 045 * queryType ã€TAG】Query を発行ã™ã‚‹ç‚ºã®ã‚¯ãƒ©ã‚¹IDを指定ã—ã¾ã?{@og.doc03Link queryType åˆæœŸå€¤:JDBCPLSQL}) 046 * command ã€TAG】コマンãƒ?NEW,RENEW)ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?PlsqlUpdateTag,UpdateTag ã®å ´åˆã?ã€ENTRY) 047 * scope ã€TAG】ã‚ャãƒ?‚·ãƒ¥ã™ã‚‹å ´åˆã?スコープ[request/page/session/applicaton]を指定ã—ã¾ã?åˆæœŸå€¤:session) 048 * maxRowCount ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)ãƒ??ã‚¿ã®æœ?¤§èªã¿è¾¼ã¿ä»¶æ•°ã‚’指定ã—ã¾ã?(åˆæœŸå€¤:DB_MAX_ROW_COUNT[=1000])(0:[無制é™]) 049 * skipRowCount ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)ãƒ??ã‚¿ã®èªã¿å§‹ã‚ã®åˆæœŸå€¤ã‚’指定ã—ã¾ã? 050 * notfoundMsg ã€TAGã€‘æ¤œç´¢çµæžœãŒã‚¼ãƒä»¶ã®å ´åˆã«è¡¨ç¤ºã™ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹IDを指定ã—ã¾ã?åˆæœŸå€¤:MSG0077[対象ãƒ??ã‚¿ã¯ã‚りã¾ã›ã‚“ã§ã—ãŸ]) 051 * names ã€TAG】PL/SQLを利用ã™ã‚‹å ´åˆã?引数ã«ã‚»ãƒ?ƒˆã™ã¹ã?ãƒ??ã‚¿ã®åç§°ã‚’CSVå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã? 052 * dbType ã€TAG】Queryã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã«æ¸¡ã™å¼•æ•°ã®ã‚¿ã‚¤ãƒ—定義(ä¾?typeå_ARRAY) 053 * selectedAll ã€TAG】データをå?ä»¶é¸æŠžæ¸ˆã¿ã¨ã—ã¦å‡¦ç?™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false) 054 * tableId ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)çµæžœã®DBTableModelã‚’ã?sessionã«ç™»éŒ²ã™ã‚‹ã¨ãã?ã‚ーを指定ã—ã¾ã? 055 * dbid ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)Queryオブジェクトを作æ?ã™ã‚‹æ™‚ã?DB接続IDを指定ã—ã¾ã? 056 * stopError ã€TAG】PLSQL/SQL処ç?‚¨ãƒ©ãƒ¼ã®æ™‚ã«å‡¦ç?‚’䏿¢ã™ã‚‹ã‹ã©ã?‹[true/false]ã‚’è¨å®šã—ã¾ã?åˆæœŸå€¤:true) 057 * tableModelCommit ã€TAG】テーブルモãƒ?ƒ«ã®ç¢ºå®šå?ç?‚’行ã†ã‹ã©ã?‹[true/false]ã‚’è¨å®šã—ã¾ã?åˆæœŸå€¤:true) 058 * debug ã€TAG】デãƒãƒƒã‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false) 059 * > ... Body ... 060 * </og:plsqlUpdate> 061 * 062 * â—使用ä¾? 063 * ・引数/プãƒã‚·ã‚¸ãƒ£ãƒ¼ã‚’ä»–ã?JSPã‹ã‚‰æ¸¡ã™å?å? 064 * ã€copy.jspã€? 065 * <og:hidden name="names" value="UNIQ,USRID,ECNO,EDBN" /> 066 * <og:hidden name="SQL" value="{ call RKP0271E.RK0271E( ?,?,?,?,? ) }" /> 067 * ã€entry.jspã€? 068 * <og:plsqlUpdate 069 * command = "{@command}" 070 * names = "{@names}" →PL/SQLã«æ¸¡ã™å¼•æ•°(é…å?)ã®ã‚«ãƒ©ãƒ? 071 * dbType = "RK0271ARG" →PL/SQLã«æ¸¡ã™å¼•æ•°(é…å?)ã®å®šç¾©ãƒ•ァイルå? 072 * queryType = "JDBCPLSQL" > 073 * {@SQL} →CALLã™ã‚‹PL/SQL 074 * </og:plsqlUpdate> 075 * 076 * ・引数/プãƒã‚·ã‚¸ãƒ£ãƒ¼ã‚’直接書ãå?å? 077 * ã€entry.jspã€? 078 * <og:plsqlUpdate 079 * command = "{@command}" 080 * names = "UNIQ,USRID,ECNO,EDBN" →PL/SQLã«æ¸¡ã™å¼•æ•°(é…å?)ã®ã‚«ãƒ©ãƒ? 081 * dbType = "RK0271ARG" →PL/SQLã«æ¸¡ã™å¼•æ•°(é…å?)ã®å®šç¾©ãƒ•ァイルå? 082 * queryType = "JDBCPLSQL" > 083 * { call RKP0271E.RK0271E( ?,?,?,?,? )} →CALLã™ã‚‹PL/SQL 084 * </og:plsqlUpdate> 085 * 086 * ?œï¼œå‚è€?¼žï¼? 087 * ・RKP0271E.RK0271E( ?,?,?,?,? )ã®?¢??£ã®æ„味 088 * (RKP0271E.spc)------------------------------------------------------------ 089 * CREATE OR REPLACE PACKAGE RKP0271E AS 090 * PROCEDURE RK0271E( 091 * P_KEKKA OUT NUMBER -- 1個目ã®?¢??£â‡’çµæžœ 0:æ£å¸¸ 1:è¦å‘?2:異常 092 * ,P_ERRMSGS OUT ERR_MSG_ARRAY -- 2個目ã®?¢??£â‡’エラーメãƒ?‚»ãƒ¼ã‚¸é…å? 093 * ,P_NAMES IN VARCHAR2 -- 3個目ã®?¢??£â‡’カラãƒ?ãƒã‚§ãƒ?‚¯ç”¨æ–?—å? 094 * ,P_SYSARGS IN SYSARG_ARRAY -- 4個目ã®?¢??£â‡’登録æ¡ä»¶é…å?(改å»?A:追åŠ?C:変更/D:削除)ç‰ãŒ?¾?¯??•れã¾ã? 095 * ,P_RK0271 IN RK0271ARG_ARRAY -- 5個目ã®?¢??£â‡’登録ãƒ??ã‚¿é…å? 096 * 097 * ・RK0271ARGã®å®šç¾©ã®ä»•æ–¹ 098 * (RK0271ARG.sql)------------------------------------------------------------ 099 * DROP TYPE RK0271ARG_ARRAY; 100 * CREATE OR REPLACE TYPE RK0271ARG AS OBJECT 101 * ( 102 * UNIQ VARCHAR2(11) 103 * ,USRID VARCHAR2(5) 104 * ,ECNO VARCHAR(7) 105 * ,EDBN VARCHAR(2) 106 * ) ; 107 * / 108 * CREATE OR REPLACE TYPE RK0271ARG_ARRAY AS VARRAY(100) OF RK0271ARG; 109 * / 110 * 111 * @og.group ?¤?¢ç™»éŒ² 112 * 113 * @version 4.0 114 * @author Kazuhiko Hasegawa 115 * @since JDK5.0, 116 */ 117 public class PlsqlUpdateTag extends QueryTag { 118 //* ã“ã?プãƒã‚°ãƒ©ãƒ??VERSIONæ–?—å?ã‚’è¨å®šã—ã¾ã™ã? {@value} */ 119 private static final String VERSION = "5.5.5.2 (2012/08/10)" ; 120 121 private static final long serialVersionUID = 555220120810L ; 122 123 /** command å¼•æ•°ã«æ¸¡ã™äº‹ã?出æ¥ã‚?コマンãƒ? 登録{@value} */ 124 public static final String CMD_ENTRY = "ENTRY" ; 125 /** command å¼•æ•°ã«æ¸¡ã™äº‹ã?出æ¥ã‚?コマンãƒ?リスãƒ? */ 126 private static final String COMMAND_LIST = CMD_ENTRY; 127 128 /** 引数ã®ã‚¿ã‚¤ãƒ—定義 */ 129 protected String userDBType = null; 130 131 // 3.5.2.0 (2003/10/20) å†?ƒ¨ã‚ªãƒ–ジェクトタイプåã‚?シスãƒ?ƒ パラメータ ã§å®šç¾©ã—ã¾ã™ã? 132 private static final String SYSARG = "SYSARG"; 133 private boolean selectedAll = false; 134 135 private boolean isTableModelCommit = true; // 5.5.5.2 (2012/08/10) 136 137 /** 138 * Taglibã®é–‹å§‹ã‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doStartTag() ã‚?オーãƒã?ライドã—ã¾ã™ã? 139 * 140 * @return 後続å?ç??æŒ?¤º 141 */ 142 @Override 143 public int doStartTag() { 144 dyStart = System.currentTimeMillis(); 145 146 table = (DBTableModel)getObject( tableId ); 147 if( table == null || table.getRowCount() == 0 || 148 ! check( command, COMMAND_LIST ) ) { return(SKIP_BODY); } 149 150 startQueryTransaction( tableId ); // 3.6.0.8 (2004/11/19) 151 return( EVAL_BODY_BUFFERED ); // Body を評価ã™ã‚‹ã€? extends BodyTagSupport æ™? 152 } 153 154 /** 155 * Taglibã®çµ‚äº?‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doEndTag() ã‚?オーãƒã?ライドã—ã¾ã™ã? 156 * 157 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応ã?release2() ã‚?doEndTag()ã§å‘¼ã¶ã€? 158 * @og.rev 3.5.5.2 (2004/04/02) TaglibUtil.makeHTMLErrorTable メソãƒ?ƒ‰ã‚’利用 159 * @og.rev 3.6.0.8 (2004/11/19) DBTableModel をセーブã™ã‚‹æ™‚ã«ã€ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ãƒã‚§ãƒ?‚¯ã‚’行ã„ã¾ã™ã? 160 * @og.rev 3.6.1.0 (2005/01/05) オーãƒã?フãƒãƒ¼æ™‚ã¨ç™»éŒ²ä»¶æ•°ã®è¡¨ç¤ºã‚’コメントã—ã¾ã™ã? 161 * @og.rev 4.3.3.0 (2008/09/22) æ¤œç´¢çµæžœã‚’ã?"DB.ERR_CODE" ã‚ーã§ãƒªã‚¯ã‚¨ã‚¹ãƒˆã«ã‚»ãƒ?ƒˆã™ã‚‹ã€? 162 * @og.rev 4.3.3.0 (2008/09/22) 属æ? stopError ã®è¨å®šã«ã‚ˆã‚Šã€JSP処ç?‚’䏿¢ã™ã‚‹ã‹ã©ã?‹ã‚’制御ã—ã¾ã™ã? 163 * @og.rev 4.3.5.7 (2009/03/22) アクセスカウントä¸å?åˆå¯¾å¿? 164 * 165 * @return 後続å?ç??æŒ?¤º 166 */ 167 @Override 168 public int doEndTag() { 169 debugPrint(); // 4.0.0 (2005/02/28) 170 171 String label = HybsSystem.BR; // 検索ã—ãªã‹ã£ãŸå?åˆã? 172 if( check( command, COMMAND_LIST ) ) { 173 174 // 3.5.5.2 (2004/04/02) TaglibUtil.makeHTMLErrorTable メソãƒ?ƒ‰ã‚’利用 175 String err = TaglibUtil.makeHTMLErrorTable( errMessage,getResource() ); 176 if( err != null && err.length() > 0 ) { 177 if( errCode >= ErrorMessage.NG ) { // 異常ã®å ´å? 178 label = err; 179 } 180 setSessionAttribute( errMsgId,errMessage ); 181 } 182 else { 183 removeSessionAttribute( errMsgId ); 184 } 185 // 4.3.3.0 (2008/09/22) æ¤œç´¢çµæžœã‚’ã?"DB.ERR_CODE" ã‚ーã§ãƒªã‚¯ã‚¨ã‚¹ãƒˆã«ã‚»ãƒ?ƒˆã™ã‚‹ã€? 186 setRequestAttribute( "DB.ERR_CODE", String.valueOf( errCode ) ); 187 188 // 3.6.0.8 (2004/11/19) トランザクションãƒã‚§ãƒ?‚¯ã‚’行ã„ã¾ã™ã? 189 // 4.0.0.0 (2007/11/29) 入れåif ã®çµ±å? 190 if( table != null && ! commitTableObject( tableId, table ) ) { 191 jspPrint( "PlsqlUpdateTag Query処ç?Œå‰²ã‚Šè¾¼ã¾ã‚Œã¾ã—ãŸã€?BTableModel ã¯ç™»éŒ²ã—ã¾ã›ã‚“ã€? ); 192 return (SKIP_PAGE); 193 } 194 } 195 196 jspPrint( label ); 197 198 // int rtnCode = EVAL_PAGE; 199 // if( errCode >= ErrorMessage.NG ) { // 異常 200 // rtnCode = SKIP_PAGE; 201 // } 202 // else { 203 // rtnCode = EVAL_PAGE; 204 // } 205 206 // 4.0.0 (2005/01/31) 処ç?™‚間集è¨? 207 long dyTime = System.currentTimeMillis()-dyStart; 208 209 // 4.0.0 (2005/01/31) ã‚»ã‚ュリãƒ?‚£ãƒã‚§ãƒ?‚¯(ãƒ??タアクセス件数登録) 210 GUIInfo guiInfo = (GUIInfo) getSessionAttribute( HybsSystem.GUIINFO_KEY ); 211 executeCount = getParameterRows().length ; // 4.3.5.7 (2009/03/16) アクセス件数ä¸å?åˆå¯¾å¿œã?ãƒã‚§ãƒ?‚¯è¡Œã¨ä»®å®? 212 if( guiInfo != null ) { guiInfo.addWriteCount( executeCount,dyTime,sql ); } 213 // 4.3.3.0 (2008/09/22) 属æ? stopError ã®è¨å®šã«ã‚ˆã‚Šã€å?ç?‚’䏿¢ã™ã‚‹ã‹ã‚’判æ–ã—ã¾ã™ã? 214 int rtnCode = ( ( errCode >= ErrorMessage.NG ) && ( stopError ) ) ? SKIP_PAGE : EVAL_PAGE; 215 return( rtnCode ); 216 } 217 218 /** 219 * タグリブオブジェクトをリリースã—ã¾ã™ã? 220 * ã‚ャãƒ?‚·ãƒ¥ã•れã¦å†åˆ©ç”¨ã•れるã?ã§ã€ãƒ•ィールドã?åˆæœŸè¨å®šã‚’行ã„ã¾ã™ã? 221 * 222 * @og.rev 2.0.0.4 (2002/09/27) カスタãƒ?‚¿ã‚°ã® release() メソãƒ?ƒ‰ã‚’ã?追åŠ? 223 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応ã?release2() ã‚?doEndTag()ã§å‘¼ã¶ã€? 224 * @og.rev 3.5.2.0 (2003/10/20) sysDBType å»?¢ã€‚SYSARG ã¯ã€ã‚·ã‚¹ãƒ?ƒ パラメータ ã§å®šç¾©ã—ã¾ã™ã? 225 * @og.rev 5.5.5.2 (2012/08/10) isTableModelCommit追åŠ? 226 * 227 */ 228 @Override 229 protected void release2() { 230 super.release2(); 231 userDBType = null; 232 selectedAll = false; 233 isTableModelCommit = true; // 5.5.5.2 (2012/08/10) 234 } 235 236 /** 237 * Query を実行ã—ã¾ã™ã? 238 * 239 * @og.rev 2.1.2.3 (2002/12/02) ãƒ??タベã?ス更新時ã«ã€æ›´æ–°ãƒ•ラグをセãƒ?ƒˆã™ã‚‹ã‚ˆã†ã«å¤‰æ›´ 240 * @og.rev 3.5.0.0 (2003/09/17) カラãƒ?ã§ã¯ãªãã?カラãƒ?•ªå·ã‚’å?ã«æ±‚ã‚ã¦ãŠãæ–¹å¼ã«å¤‰æ›´ã€? 241 * @og.rev 3.5.2.0 (2003/10/20) å†?ƒ¨ã‚ªãƒ–ジェクトタイプåã‚?シスãƒ?ƒ パラメータ ã§å®šç¾©ã—ã¾ã™ã? 242 * @og.rev 3.5.4.2 (2003/12/15) HTMLTableViewForm クラスå変更(â‡?ViewForm_HTMLTable) 243 * @og.rev 3.5.6.0 (2004/06/18) DBRowHeader ã®ãƒ‘ッケージプライベã?ト化ã«ä¼´ãªã?¤‰æ›´ 244 * @og.rev 4.0.0.0 (2005/01/31) setArguments å»?¢ã€Query#execute ã«ã€å¼•æ•°ã‚’ã™ã¹ã¦è¿½åŠ? 245 * @og.rev 4.3.0.0 (2008/07/22) DBSysArgã®å¼•æ•°ã«æ—¥ä»˜ã?PGã€ãƒ¦ãƒ¼ã‚¶ãƒ¼IDを追åŠ? 246 * @og.rev 5.5.5.2 (2012/08/10) isTableModelCommitã«ã‚ˆã‚‹ãƒ??ブルモãƒ?ƒ«ç¢ºå®šå?ç??コントãƒãƒ¼ãƒ« 247 * 248 * @param query オブジェクãƒ? 249 */ 250 @Override 251 protected void execute( final Query query ) { 252 try { 253 if( names == null ) { 254 String errMsg = "names 属æ?ãŒã?è¨å®šã•れã¦ã?¾ã›ã‚“ã€? + HybsSystem.CR 255 + sql + HybsSystem.CR ; 256 throw new HybsSystemException( errMsg ); // 3.5.5.4 (2004/04/15) 引数ã®ä¸¦ã³é ?¤‰æ›´ 257 } 258 else { 259 int[] rowNo = getParameterRows(); 260 int rowCount = rowNo.length ; 261 if( rowCount > 0 ) { 262 String[] nameArray = StringUtil.csv2Array( names ); 263 int[] clmNo = getTableColumnNo( nameArray ); // 3.5.0.0 264 265 String curdate = HybsSystem.getDate( "yyyyMMddHHmmss" ); // 4.3.0.0 266 String pgid = getGUIInfoAttri( "KEY" ); // 4.3.0.0 267 String userid = getUser().getAttribute( "ID" ); // 4.3.0.0 268 269 DBSysArg[] sysArg = new DBSysArg[rowCount]; 270 DBUserArg[] userArg = new DBUserArg[rowCount]; 271 for( int i=0; i<rowCount; i++ ) { 272 int row = rowNo[i]; 273 String cdkh = table.getModifyType( row ); 274 // sysArg[i] = new DBSysArg( SYSARG,row,cdkh ); // 3.5.2.0 // 4.3.0.0 275 sysArg[i] = new DBSysArg( SYSARG,row,cdkh,curdate,pgid,userid ); 276 String[] values = getTableModelData( clmNo,row ); // 3.5.0.0 277 userArg[i] = new DBUserArg( userDBType,nameArray,values ); 278 } 279 query.execute( names,userDBType + "_ARRAY",sysArg,userArg ); 280 errCode = query.getErrorCode(); 281 errMessage = query.getErrorMessage(); 282 283 if( errCode < ErrorMessage.NG ) { // 異常以外ã?å ´å? 284 query.commit(); 285 if( isTableModelCommit ) { // 5.5.5.2 (2012/08/10)) 286 for( int j=rowCount-1; j>=0; j-- ) { 287 int row = rowNo[j]; 288 if( DBTableModel.DELETE_TYPE.equals( table.getModifyType( row ) ) ) { 289 table.removeValue( row ); 290 } 291 else { 292 table.resetModify( row ); 293 } 294 } 295 } 296 } 297 else { 298 query.rollback(); 299 } 300 } 301 } 302 } 303 catch( HybsSystemException ex ) { 304 query.rollback(); 305 throw ex; 306 } 307 finally { 308 if( query != null ) { query.close(); } 309 } 310 } 311 312 /** 313 * カラãƒ?é…å?(String[])よりã€å¯¾å¿œã™ã‚‹ã‚«ãƒ©ãƒ?oé…å?(int[])を作æ?ã—ã¾ã™ã? 314 * 315 * @og.rev 3.5.0.0 (2003/09/17) æ–°è¦è¿½åŠ? 316 * 317 * @param nameArray カラãƒ?é…å? 318 * 319 * @return カラãƒ?oé…å? 320 */ 321 private int[] getTableColumnNo( final String[] nameArray ) { 322 int[] clmNo = new int[ nameArray.length ]; 323 for( int i=0; i<clmNo.length; i++ ) { 324 clmNo[i] = table.getColumnNo( nameArray[i] ); 325 } 326 return clmNo; 327 } 328 329 /** 330 * æŒ?®šã?行番å·ã®ã€ã‚«ãƒ©ãƒ?oé…å?(int[])ã«å¯¾å¿œã—ãŸå?ã®é…å?ã‚’è¿”ã—ã¾ã™ã? 331 * 332 * 表示ãƒ??ã‚¿ã® HybsSystem.ROW_SEL_KEY ã‚’å?ã«ã€?¸ã°ã‚ŒãŸ 行を 333 * 処ç??対象ã¨ã—ã¾ã™ã? 334 * 335 * @og.rev 3.5.0.0 (2003/09/17) カラãƒ?ã§ã¯ãªãã?カラãƒ?•ªå·ã‚’å—ã‘å–るよã?«ä¿®æ£ã€? 336 * 337 * @param clmNo カラãƒ?oé…å? 338 * @param row è¡Œç•ªå· 339 * 340 * @return 行番å·ã¨ã‚«ãƒ©ãƒ?oé…å?ã«å¯¾å¿œã—ãŸã?値ã®é…å? 341 */ 342 private String[] getTableModelData( final int[] clmNo,final int row ) { 343 String[] values = new String[ clmNo.length ]; 344 for( int i=0; i<values.length; i++ ) { 345 values[i] = table.getValue( row,clmNo[i] ) ; 346 // NUMBER タイプã?ã‚ャストエラーを防ã為ã®å¯¾å¿? 347 if( values[i] != null && values[i].length() == 0 ) { values[i] = null; } 348 } 349 return values; 350 } 351 352 /** 353 * 表示ãƒ??ã‚¿ã® HybsSystem.ROW_SEL_KEY ã‚’å?ã«ã€?¸ã°ã‚ŒãŸ 行を処ç??対象ã¨ã—ã¾ã™ã? 354 * 355 * <del>rowNo[] ã?null ã®å ´åˆã?ã¿ã€å–込を行ã„ã¾ã™ã?</del> 356 * 357 * @og.rev 4.0.0.0 (2005/01/31) getParameterRows() を使用ã™ã‚‹ã‚ˆã†ã«å¤‰æ›´ 358 * 359 * @return é¸æŠžè¡Œã?é…å? 360 */ 361 @Override 362 protected int[] getParameterRows() { 363 final int[] rowNo ; 364 if( selectedAll ) { 365 int rowCnt = table.getRowCount(); // 3.5.5.7 (2004/05/10) 366 rowNo = new int[ rowCnt ]; 367 for( int i=0; i<rowCnt; i++ ) { 368 rowNo[i] = i; 369 } 370 } else { 371 rowNo = super.getParameterRows(); // 4.0.0 (2005/01/31) 372 } 373 return rowNo ; 374 } 375 376 /** 377 * ã€TAG】Queryã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã«æ¸¡ã™å¼•æ•°ã®ã‚¿ã‚¤ãƒ—定義(ä¾?typeå_ARRAY)ã€? 378 * 379 * @og.tag 380 * ã“ã“ã§ã¯ã€type 定義ã®PL/SQLåã‚’æŒ?®šã—ã¾ã™ã? 381 * 行を表ã™é?列ã?ã€typeå_ARRAY ã¨ã?†åç§°ã§ã™ã? 382 * 383 * @param type 定義ã®PL/SQLå? 384 */ 385 public void setDbType( final String type ) { 386 userDBType = getRequestParameter( type ); 387 } 388 389 /** 390 * ã€TAG】データをå?ä»¶é¸æŠžæ¸ˆã¿ã¨ã—ã¦å‡¦ç?™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false)ã€? 391 * 392 * @og.tag 393 * å…¨ã¦ã®ãƒ??ã‚¿ã‚’é¸æŠžæ¸ˆã¿ãƒ??ã‚¿ã¨ã—ã¦æ‰±ã£ã¦å‡¦ç?—ã¾ã™ã? 394 * 全件処ç?™ã‚‹å?åˆã«ã€?true/false)を指定ã—ã¾ã™ã? 395 * åˆæœŸå€¤ã¯ false ã§ã™ã? 396 * 397 * @param all ãƒ??ã‚¿ã‚’å?ä»¶é¸æŠžæ¸ˆã¿ [true:å…¨ä»¶é¸æŠžæ¸ˆã¿/false:通常] 398 */ 399 public void setSelectedAll( final String all ) { 400 selectedAll = nval( getRequestParameter( all ),selectedAll ); 401 } 402 403 /** 404 * ã€TAG】Query を発行ã™ã‚‹ç‚ºã®ã‚¯ãƒ©ã‚¹IDを指定ã—ã¾ã?{@og.doc03Link queryType åˆæœŸå€¤:JDBCPLSQL})ã€? 405 * 406 * @og.tag 407 * 引数æŒ?®šã?INSERT/UPDATEæ–?‚’実行ã™ã‚‹å?åˆã?ã€queryType 属æ?を使用ã—ã¾ã™ã? 408 * ã“ã?ã‚¿ã‚°ã§ã¯ã€execute( String ,String , DBSysArg[] , DBUserArg[] )を実行ã—ã¾ã™ã? 409 * 代表çš?ªã‚¯ãƒ©ã‚¹ã¨ã—ã¦ã€?JDBCPLSQL" ãŒæ¨™æº–ã§ç”¨æ„ã•れã¦ã?¾ã™ã? 410 * 411 * ã‚¿ã‚°ã«ã‚ˆã‚Šä½¿ç”¨ã§ãã‚‹/出æ¥ãªã?Œã‚りã¾ã™ãŒã€ã“れã?ã€org.opengion.hayabusa.db 412 * 以下ã? Query_**** クラス㮠**** を与ãˆã¾ã™ã? 413 * ã“れらã?ã€Query インターフェースを継承ã—ãŸã‚µãƒ–クラスã§ã™ã? 414 * {@og.doc03Link queryType Query_**** クラス} 415 * 416 * @og.rev 3.5.4.2 (2003/12/15) JavaDocコメント用ã«ãƒ¡ã‚½ãƒ?ƒ‰è¿½åŠ?? 417 * 418 * @param id Query を発行ã™ã‚‹ç‚ºã®å®Ÿã‚¯ãƒ©ã‚¹ ID 419 * @see org.opengion.hayabusa.db.Query Queryã®ã‚µãƒ–クラス 420 * @see org.opengion.hayabusa.db.Query#execute( String ,String , DBSysArg[] , DBUserArg[] ) 421 */ 422 @Override 423 public void setQueryType( final String id ) { 424 super.setQueryType( nval( id,"JDBCPLSQL" ) ); 425 } 426 427 /** 428 * ã€TAG】テーブルモãƒ?ƒ«ã«å¯¾ã™ã‚‹ç¢ºå®šå?ç?‚’行ã†ã‹ã©ã?‹ã‚’指定ã—ã¾ã?åˆæœŸå€¤:true)ã€? 429 * 430 * @og.tag 431 * PlsqlUpdateã‚¿ã‚°ã§ã€ã‚¨ãƒ©ãƒ¼ãŒãªã‹ã£ãŸå?åˆã?通常ã€ãƒ†ãƒ¼ãƒ–ルモãƒ?ƒ«ã®æ”¹å»?«å¾“ã£ã¦å‡¦ç?Œè¡Œã‚れã¾ã™ã? 432 * ?ˆæ”¹å»ƒDã«ã¤ã?¦ã¯å‰Šé™¤å‡¦ç?‚’行ã„ã€ãã®ä»–ã«ã¤ã?¦ã¯æ”¹å»?‚’å…?«æˆ»ã™ï¼? 433 * 434 * ã“ã?パラメータをfalseã«æŒ?®šã™ã‚‹ã¨ã€ãƒ†ãƒ¼ãƒ–ルモãƒ?ƒ«ã«å¯¾ã™ã‚‹å‡¦ç?‚’行ã„ã¾ã›ã‚“ã€? 435 * ã“れã¯ã€ä¾‹ãˆã°PL/SQLã§ã‚¨ãƒ©ãƒ¼ãƒã‚§ãƒ?‚¯ã®ã¿ã‚’行ã„ãŸã„å ´åˆã«æœ‰åйã§ã™ã? 436 * åˆæœŸå€¤ã¯true(処ç?‚’行ã†?‰ã§ã™ã? 437 * 438 * @og.rev 5.5.5.2 (2012/08/10) æ–°è¦ä½œæ? 439 * 440 * @param flag ãƒ??ブルモãƒ?ƒ«ã«å¯¾ã™ã‚‹å‡¦ç?‚’行ã†ã‹ã©ã?‹ 441 */ 442 public void setTableModelCommit( final String flag ) { 443 isTableModelCommit = nval( getRequestParameter( flag ),isTableModelCommit ); 444 } 445 446 /** 447 * ã“ã?オブジェクトã?æ–?—å?表ç¾ã‚’è¿”ã—ã¾ã™ã? 448 * 基本çš?«ãƒ?ƒãƒ?‚°ç›®çš?«ä½¿ç”¨ã—ã¾ã™ã? 449 * 450 * @return ã“ã?ã‚¯ãƒ©ã‚¹ã®æ–?—å?è¡¨ç¾ 451 */ 452 @Override 453 public String toString() { 454 return org.opengion.fukurou.util.ToString.title( this.getClass().getName() ) 455 .println( "VERSION" ,VERSION ) 456 .println( "selectedAll" ,selectedAll ) 457 .fixForm().toString() 458 + HybsSystem.CR 459 + super.toString() ; 460 } 461 }