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 static org.opengion.fukurou.util.StringUtil.nval; 019 020 import java.io.IOException; 021 import java.io.ObjectInputStream; 022 import java.io.ObjectOutputStream; 023 import java.util.Locale; 024 025 import org.opengion.fukurou.db.DBUtil; 026 import org.opengion.fukurou.db.Transaction; 027 import org.opengion.fukurou.db.TransactionReal; 028 import org.opengion.fukurou.util.ErrorMessage; 029 import org.opengion.fukurou.util.StringUtil; 030 import org.opengion.hayabusa.common.HybsSystem; 031 import org.opengion.hayabusa.common.HybsSystemException; 032 import org.opengion.hayabusa.db.DBColumn; 033 import org.opengion.hayabusa.db.DBEditConfig; 034 import org.opengion.hayabusa.db.DBTableModel; 035 import org.opengion.hayabusa.db.Query; 036 import org.opengion.hayabusa.db.QueryFactory; 037 import org.opengion.hayabusa.resource.GUIInfo; 038 039 /** 040 * ãƒ??タベã?ã‚¹ã®æ¤œç´¢ã‚’行ã†ã‚¿ã‚°ã§ã™ã? 041 * 042 * ã“ã?ã‚¿ã‚°ã®å†?®¹ã«ã€SQLæ–?‚’記述ã—ã¾ã™ã? whereã‚¿ã‚°ã€?andã‚¿ã‚° を使ã?¨å¼•æ•°ã«å¿œã˜ã¦ 043 * 実行ã•れるSQLæ–?Œç•°ãªã‚Šã¾ã?使用例å‚ç…§)ã€? 044 * ã¾ãŸã?PL/SQLã®SPã§æ¤œç´¢ã‚’行ã†ã¨ãã‚‚ã“ã?タグを使ã?¾ã™ã? 045 * SystemData ã® USE_SQL_INJECTION_CHECK ã?true ã‹ã?quotCheck 属æ?ã?true ã®å ´åˆã?ã€? 046 * ?³?±?¬ã‚¤ãƒ³ã‚¸ã‚§ã‚¯ã‚·ãƒ§ãƒ³å¯¾ç–用ã®ã‚¯ã‚©ãƒ¼ãƒ?‚£ã‚·ãƒ§ãƒ³ãƒã‚§ãƒ?‚¯ã‚’行ã„ã¾ã™ã?リクエスト引数㫠047 * クォーãƒ?‚£ã‚·ãƒ§ãƒ³(')ãŒå«ã¾ã‚Œã‚‹ã¨ã€ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã? 048 * åŒæ§˜ã«USE_XSS_CHECKãŒtrueã‹ã?xssCheck属æ?ãŒtrueã®å ´åˆã?ã€? 049 * クãƒã‚¹ã‚µã‚¤ãƒˆã‚¹ã‚¹ã‚¯ãƒªãƒ—ティング(XSS)対ç–ã?ãŸã‚less/greater than signã®ãƒã‚§ãƒ?‚¯ã‚’行ã„ã¾ã™ã? 050 * 051 * ※ ã“ã?ã‚¿ã‚°ã¯ã€Transaction ã‚¿ã‚°ã®å¯¾è±¡ã§ã™ã? 052 * 053 * @og.formSample 054 * â—å½¢å¼ï¼? 055 * ・<og:query command="NEW" > 056 * SELECTæ–? 057 * </og:query> 058 * ・<og:query command="NEW" names="?¥?¥?¥" queryType="JDBCErrMsg" > 059 * { call PL/SQL(?,?,?,? ) } 060 * </og:query> 061 * â—body?šã‚ã‚? 062 * 063 * â—Tag定義?? 064 * <og:query 065 * queryType ã€TAG】Query を発行ã™ã‚‹ç‚ºã®ã‚¯ãƒ©ã‚¹ID(JDBC,JDBCCallable,JDBCErrMsg,JDBCUpdate)を指定ã—ã¾ã™{@og.doc03Link queryType åˆæœŸå€¤:JDBC}) 066 * command ã€TAG】コマンãƒ?NEW,RENEW)ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?PlsqlUpdateTag,UpdateTag ã®å ´åˆã?ã€ENTRY) 067 * scope ã€TAG】ã‚ャãƒ?‚·ãƒ¥ã™ã‚‹å ´åˆã?スコープ[request/page/session/applicaton]を指定ã—ã¾ã?åˆæœŸå€¤:session) 068 * maxRowCount ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)ãƒ??ã‚¿ã®æœ?¤§èªã¿è¾¼ã¿ä»¶æ•°ã‚’指定ã—ã¾ã?(åˆæœŸå€¤:DB_MAX_ROW_COUNT[=1000])(0:[無制é™]) 069 * skipRowCount ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)ãƒ??ã‚¿ã®èªã¿å§‹ã‚ã®åˆæœŸå€¤ã‚’指定ã—ã¾ã? 070 * displayMsg ã€TAGã€‘æ¤œç´¢çµæžœã‚’ç”»é¢ä¸Šã«è¡¨ç¤ºã™ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹IDを指定ã—ã¾ã?(åˆæœŸå€¤:VIEW_DISPLAY_MSG[=]) 071 * overflowMsg ã€TAG】検索ãƒ??ã‚¿ãŒæœ€å¤§æ¤œç´¢æ•°ã‚’オーãƒã?ã—ãŸå ´åˆã«è¡¨ç¤ºã™ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹IDを指定ã—ã¾ã?(åˆæœŸå€¤:MSG0007[æ¤œç´¢çµæžœãŒã?制é™è¡Œæ•°ã‚’è¶?ˆã¾ã—ãŸã®ã§ã€æ®‹ã‚Šã¯ã‚«ãƒ?ƒˆã•れã¾ã—ãŸ]) 072 * notfoundMsg ã€TAGã€‘æ¤œç´¢çµæžœãŒã‚¼ãƒä»¶ã®å ´åˆã«è¡¨ç¤ºã™ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹IDを指定ã—ã¾ã?åˆæœŸå€¤:MSG0077[対象ãƒ??ã‚¿ã¯ã‚りã¾ã›ã‚“ã§ã—ãŸ]) 073 * names ã€TAG】PL/SQLを利用ã™ã‚‹å ´åˆã?引数ã«ã‚»ãƒ?ƒˆã™ã¹ã?ãƒ??ã‚¿ã®åç§°ã‚’CSVå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã? 074 * stopZero ã€TAGã€‘æ¤œç´¢çµæžœãŒï¼ä»¶ã®ã¨ãå?ç?‚’続行ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false[続行ã™ã‚‹]) 075 * tableId ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)çµæžœã®DBTableModelã‚’ã?sessionã«ç™»éŒ²ã™ã‚‹ã¨ãã?ã‚ーを指定ã—ã¾ã? 076 * dbid ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)Queryオブジェクトを作æ?ã™ã‚‹æ™‚ã?DB接続IDを指定ã—ã¾ã? 077 * trace ã€TAG】引数㮠SQL æ–?‚’ EXPLAIN PLAN ã‚’[true:行ã†/ãれ以å¤?行ã‚ãªã„]を指定ã—ã¾ã?åˆæœŸå€¤:false) 078 * checkNames ã€TAGã€‘ãƒªã‚¯ã‚¨ã‚¹ãƒˆå¤‰æ•°ã®æ£è¦åŒ–を行ã†ã‚«ãƒ©ãƒ?‚’CSVå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã? 079 * modifyType ã€TAG】DB検索時ã? モãƒ?‚£ãƒ•ァイタイプをæŒ?®šã—ã¾ã™[A:追åŠ?C:æ›´æ–°/D:削除] 080 * quotCheck ã€TAGã€‘ãƒªã‚¯ã‚¨ã‚¹ãƒˆæƒ…å ±ã® ã‚¯ã‚©ãƒ¼ãƒ?‚£ã‚·ãƒ§ãƒ³(') å˜åœ¨ãƒã‚§ãƒ?‚¯ã‚’実施ã™ã‚‹ã‹ã©ã?‹[true/false]ã‚’è¨å®šã—ã¾ã?åˆæœŸå€¤:USE_SQL_INJECTION_CHECK) 081 * stopError ã€TAG】PLSQL/SQL処ç?‚¨ãƒ©ãƒ¼ã®æ™‚ã«å‡¦ç?‚’䏿¢ã™ã‚‹ã‹ã©ã?‹[true/false]ã‚’è¨å®šã—ã¾ã?åˆæœŸå€¤:true) 082 * xssCheck ã€TAGã€‘ãƒªã‚¯ã‚¨ã‚¹ãƒˆæƒ…å ±ã® HTMLTagé–‹å§?終äº?–‡å?><) å˜åœ¨ãƒã‚§ãƒ?‚¯ã‚’実施ã™ã‚‹ã‹ã©ã?‹[true/false]ã‚’è¨å®šã—ã¾ã?(åˆæœŸå€¤:USE_XSS_CHECK[=true]) 083 * mainTrans ã€TAGã€?通常使ã?¾ã›ã‚“)ã‚¿ã‚°ã§å‡¦ç?•れる処ç?Œãƒ¡ã‚¤ãƒ³ã¨ãªã‚‹ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³å‡¦ç?‹ã©ã?‹ã‚’指定ã—ã¾ã?åˆæœŸå€¤:true) 084 * caseKey ã€TAG】ã“ã®ã‚¿ã‚°è‡ªä½“を利用ã™ã‚‹ã‹ã©ã?‹ã®æ¡ä»¶ã‚ーを指定ã—ã¾ã?åˆæœŸå€¤:null) 085 * caseVal ã€TAG】ã“ã®ã‚¿ã‚°è‡ªä½“を利用ã™ã‚‹ã‹ã©ã?‹ã®æ¡ä»¶å€¤ã‚’指定ã—ã¾ã?åˆæœŸå€¤:null) 086 * useBeforeHtmlTag ã€TAGã€?処ç?™‚é–?queryTime)ãªã©ã®æƒ??出力[true:有効/false:無効]を指定ã—ã¾ã?åˆæœŸå€¤:true) 087 * debug ã€TAG】デãƒãƒƒã‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false) 088 * > ... Body ... 089 * </og:query> 090 * 091 * â—使用ä¾? 092 * <og:query command="NEW"> 093 * select PN,YOBI,NMEN,HINM from XX01 where PN = '{@PN}' order by PN 094 * </og:query> 095 * 096 * ・検索æ¡ä»¶ãŒå?力ã•ã‚ŒãŸæ™?{@PN}ãŒNOT NULLã®ã¨ã? 097 * 作æ?ã•れるSQLæ–?çselect PN,YOBI,NMEN,HINM from XX01 where PN = 'AAA' order by PN 098 * ・検索æ¡ä»¶ãŒå?力ã•れãªã‹ã£ãŸæ™‚({@PN}ãŒNULLã®ã¨ã? 099 * 作æ?ã•れるSQLæ–?çselect PN,YOBI,NMEN,HINM from XX01 where PN = '' order by PN 100 * 101 * <og:query command="NEW"> 102 * select PN,YOBI,NMEN,HINM from XX01 103 * <og:where> 104 * <og:and value="PN = '{@PN}%'" /> 105 * <og:and value="YOBI like '{@YOBI}%'" /> 106 * </og:where> 107 * order by PN 108 * </og:query> 109 * 110 * ・検索æ¡ä»¶ãŒå?力ã•ã‚ŒãŸæ™?{@PN}ãŒNOT NULLã®ã¨ã? 111 * 作æ?ã•れるSQLæ–?çselect PN,YOBI,NMEN,HINM from XX01 PN = 'AAA%' and YOBI like 'BBB%' order by PN 112 * ・検索æ¡ä»¶ãŒå?力ã•れãªã‹ã£ãŸæ™‚({@PN}ãŒNULLã®ã¨ã? WHEREå¥ãŒãªããªã‚‹ã? 113 * 作æ?ã•れるSQLæ–?çselect PN,YOBI,NMEN,HINM from XX01 order by PN 114 * 115 * 注æ„?WhereTagを使ã£ãŸå?åˆã?下ã?よã†ã«ã¯ãªã‚Šã¾ã›ã‚“ã€? 116 * select PN,YOBI,NMEN,HINM from XX01 PN = '' and YOBI like '%' order by PN 117 * 118 * <og:query command="NEW"> 119 * select PN,YOBI,NMEN,HINM from XX01 where PN="11111" 120 * <og:where startKey="and"> 121 * <og:and value="YOBI like '{@PN}%'" /> 122 * </og:where> 123 * order by PN 124 * </og:query> 125 * 126 * ・検索æ¡ä»¶ãŒå?力ã•ã‚ŒãŸæ™?{@YOBI}ãŒNOT NULLã®ã¨ã? 127 * 作æ?ã•れるSQLæ–?çselect PN,YOBI,NMEN,HINM from XX01 PN = '11111' and YOBI like 'BBB%' order by PN 128 * ・検索æ¡ä»¶ãŒå?力ã•れãªã‹ã£ãŸæ™‚({@YOBI}ãŒNULLã®ã¨ã? WHEREå¥ãŒãªããªã‚‹ã? 129 * 作æ?ã•れるSQLæ–?çselect PN,YOBI,NMEN,HINM from XX01 PN = '11111' order by PN 130 * 131 * <og:query 132 * command = "NEW" 133 * names = "SYSTEM_ID,LANG,CLM,NAME_JA,LABEL_NAME,KBSAKU,USER.ID" 134 * checkNames = "CLM,NAME_JA" 135 * queryType = "JDBCErrMsg" 136 * displayMsg = ""> 137 * {call TYPE3B01.TYPE3B01(?,?,?,?)} 138 * </og:query> 139 * 140 * ・queryType ã« JDBCErrMsg を指定ã—ã¦ã€PL/SQL をコールã§ãã¾ã™ã? 141 * 引数ã¯ã€names 属æ?ã‚’ã‚ーã«ãƒªã‚¯ã‚¨ã‚¹ãƒˆå¤‰æ•°ã‹ã‚‰èªã¿è¾¼ã¿ã¾ã™ã? 142 * ・checkNames ã«ã‚«ãƒ©ãƒ?を指定ã™ã‚‹ã¨ã€columns.valueSet ã«ã‚ˆã‚‹ 143 * ãƒªã‚¯ã‚¨ã‚¹ãƒˆå¤‰æ•°ã®æ£è¦åŒ–を行ã„ã¾ã™ã? 144 * 145 * @og.group ?¤?¢æ¤œç´¢ 146 * @og.group ?¤?¢ç™»éŒ² 147 * 148 * @version 4.0 149 * @author Kazuhiko Hasegawa 150 * @since JDK5.0, 151 */ 152 public class QueryTag extends CommonTagSupport { 153 //* ã“ã?プãƒã‚°ãƒ©ãƒ??VERSIONæ–?—å?ã‚’è¨å®šã—ã¾ã™ã? {@value} */ 154 private static final String VERSION = "5.6.5.3 (2013/06/28)" ; 155 156 private static final long serialVersionUID = 565320130628L ; 157 158 /** command å¼•æ•°ã«æ¸¡ã™äº‹ã?出æ¥ã‚?コマンãƒ? æ–°è¦?{@value} */ 159 public static final String CMD_NEW = "NEW" ; 160 /** command å¼•æ•°ã«æ¸¡ã™äº‹ã?出æ¥ã‚?コマンãƒ? 冿¤œç´¢ {@value} */ 161 public static final String CMD_RENEW = "RENEW" ; 162 /** command å¼•æ•°ã«æ¸¡ã™äº‹ã?出æ¥ã‚?コマンãƒ?リスãƒ? */ 163 private static final String[] COMMAND_LIST = new String[] { CMD_NEW , CMD_RENEW }; 164 165 /** エラーメãƒ?‚»ãƒ¼ã‚¸ID {@value} */ 166 protected static final String errMsgId = HybsSystem.ERR_MSG_KEY; 167 168 private String queryType = null; 169 // 4.0.0.0 (2007/10/10) dbid ã®åˆæœŸå€¤ã‚’ã?"DEFAULT" ã‹ã‚‰ null ã«å¤‰æ›´ 170 // private String dbid = "DEFAULT"; 171 private String dbid = null ; 172 protected transient DBTableModel table = null; 173 protected transient ErrorMessage errMessage = null; 174 protected String tableId = HybsSystem.TBL_MDL_KEY; 175 protected String command = CMD_NEW; 176 protected int skipRowCount = 0; 177 protected int maxRowCount = -1; 178 protected String sql = null; 179 protected int executeCount = -1; // 検索/実行件数 180 protected String names = null; 181 protected boolean outMessage = true; 182 protected int errCode = ErrorMessage.OK; 183 protected boolean quotCheck = HybsSystem.sysBool( "USE_SQL_INJECTION_CHECK" ); // 4.0.0 (2005/08/31) 184 private boolean trace = false; // 4.0.0 (2005/01/31) å»?¢ 185 private boolean stopZero = false; 186 private String modifyType = null; // 3.8.5.1 (2006/05/08) modifyType 属æ?を追åŠ?—ã¾ã™ã? 187 // private String displayMsg = "MSG0033"; // ã€?»¶æ¤œç´¢ã—ã¾ã—ãŸã€? 188 protected String displayMsg = HybsSystem.sys( "VIEW_DISPLAY_MSG" ); 189 private String overflowMsg = "MSG0007"; // æ¤œç´¢çµæžœãŒã?制é™è¡Œæ•°ã‚’è¶?ˆã¾ã—ãŸã®ã§ã€æ®‹ã‚Šã¯ã‚«ãƒ?ƒˆã•れã¾ã—ãŸã€? 190 private String notfoundMsg = "MSG0077"; // 対象ãƒ??ã‚¿ã¯ã‚りã¾ã›ã‚“ã§ã—ãŸã€? 191 private boolean isMainTrans = true; // 5.1.6.0 (2010/05/01) DBLastSqlã®å‡¦ç??見直ã? 192 193 // 3.5.4.7 (2004/02/06) 実行時間測定用ã®DIVè¦ç´?‚’出力ã—ã¾ã™ã? 194 protected long dyStart = 0; 195 // 4.3.3.0 (2008/09/22) PLSQL/SQL実行エラーã®éš›ã«ã€å?ç?‚’䏿¢ã™ã‚‹ã‹ã©ã?‹ã€? 196 protected boolean stopError = true; 197 198 private StringBuilder debugMsg = null; // 3.5.6.0 (2004/06/18) 199 200 // 3.8.0.5 (2005/08/20) ãƒªã‚¯ã‚¨ã‚¹ãƒˆå¤‰æ•°ã®æ£è¦åŒ–を行ã„ã¾ã™ã? 201 private String checkNames = null; 202 203 // 3.8.5.3 (2006/08/07) トレース時ã?メãƒ?‚»ãƒ¼ã‚¸æ–?—å?ã‚’ä¿å˜ã—ã¦ãŠãã¾ã™ã? 204 private String traceMsg = null; 205 206 protected boolean xssCheck = HybsSystem.sysBool( "USE_XSS_CHECK" ); // 5.0.0.2 (2009/09/15) 207 208 // 5.3.5.0 (2011/05/01) 処ç?™‚é–?queryTime)ãªã©ã®æƒ??出力ã?有効/無効を指定ã—ã¾ã™ã? 209 private boolean useBeforeHtmlTag = true ; 210 211 /** 212 * Taglibã®é–‹å§‹ã‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doStartTag() ã‚?オーãƒã?ライドã—ã¾ã™ã? 213 * 214 * @og.rev 3.5.4.7 (2004/02/06) 実行時間測定用ã«ã€?–‹å§‹æ™‚刻をå–å¾—ã—ã¾ã™ã? 215 * @og.rev 3.5.6.5 (2004/08/09) 暫定的ã«ã€DBTableModelã‚’å?行削除ã—ã¾ã™ã? 216 * @og.rev 3.6.0.0 (2004/09/24) DBTableModel ã®å…ˆè¡Œå‰Šé™¤ã¯ã€scope="session" ã®å ´åˆã?ã¿ã€? 217 * @og.rev 5.1.6.0 (2010/05/01) DBLastSqlã®å‡¦ç??ã€DBTableModelãŒæ–°è¦ä½œæ?ã•れãŸå?ç?§ã®ã¿è¡Œã†ã€? 218 * @og.rev 5.2.2.0 (2010/11/01) caseKey ã€caseVal 属æ?対å¿? 219 * 220 * @return 後続å?ç??æŒ?¤º 221 */ 222 @Override 223 public int doStartTag() { 224 // 5.2.2.0 (2010/11/01) caseKey ã€caseVal 属æ?対å¿? 225 if( useTag() ) { 226 dyStart = System.currentTimeMillis(); 227 if( ! check( command, COMMAND_LIST ) ) { return(SKIP_BODY); } 228 229 useMainTrans( isMainTrans ); // 5.1.6.0 (2010/05/01) DBLastSqlã®å‡¦ç??見直ã? 230 startQueryTransaction( tableId ); // 3.6.0.8 (2004/11/19) 231 232 // 3.5.6.5 (2004/08/09) 削除ã™ã‚‹ã®ã¯ã€ã‚»ãƒ?‚·ãƒ§ãƒ³ã®ã‚ªãƒ–ジェクトã§ã‚ˆã„ã€? 233 // 3.6.0.0 (2004/09/24) 削除ã™ã‚‹ã®ã¯ã€scope="session" ã®å ´åˆã?ã¿ã€? 234 if( "session".equals( getScope() ) ) { 235 removeSessionAttribute( tableId ); 236 removeSessionAttribute( HybsSystem.VIEWFORM_KEY ); 237 } 238 239 return( EVAL_BODY_BUFFERED ); // Body を評価ã™ã‚‹ã€? extends BodyTagSupport æ™? 240 } 241 return ( SKIP_BODY ); // Body を評価ã—ãªã? 242 } 243 244 /** 245 * Taglibã®ã‚¿ã‚°æœ¬ä½“を処ç?™ã‚?doAfterBody() ã‚?オーãƒã?ライドã—ã¾ã™ã? 246 * 247 * @og.rev 3.1.1.0 (2003/03/28) ボディã®å†?®¹ã‚’å–å¾—ã™ã‚‹å?ç?‚’ã€CommonTagSupport ã§è¡Œã†ã€? 248 * @og.rev 3.6.0.8 (2004/11/19) エラー発生時ã«ç¢ºå®Ÿã«ãƒªãƒªãƒ¼ã‚¹ã•れるよã?« try finally 追åŠ? 249 * @og.rev 3.8.5.3 (2006/08/07) USER.LASTSQL ã¸ã®SQLæ–??ä¿å˜ã?ã€å®Ÿè¡Œå‰ã«è¡Œã£ã¦ãŠãã¾ã™ã? 250 * @og.rev 3.8.6.3 (2006/11/30) SQL æ–??å‰å¾Œã?スペã?スをå–り除ãã¾ã™ã? 251 * @og.rev 3.8.7.0 (2006/12/15) アクセスãƒã‚°å–å¾—ã?為,ApplicationInfoオブジェクトをè¨å®? 252 * @og.rev 4.0.0.0 (2005/01/31) lang â‡?ResourceManager ã¸å¤‰æ›´ 253 * @og.rev 4.0.0.0 (2005/08/31) useQuotCheck() ã«ã‚ˆã‚‹?³?±?¬ã‚¤ãƒ³ã‚¸ã‚§ã‚¯ã‚·ãƒ§ãƒ³å¯¾ç? 254 * @og.rev 4.3.4.0 (2008/12/01) GE20(ユーザー定数)ã¸ç™»éŒ²ã™ã‚‹ã‹ã?フラグã¸ã®å¯¾å¿? 255 * @og.rev 5.0.0.2 (2009/09/15) XSS対å¿? 256 * @og.rev 5.1.6.0 (2010/05/01) DBLastSqlã®å‡¦ç??ã€DBTableModelãŒæ–°è¦ä½œæ?ã•れãŸå?ç?§ã®ã¿è¡Œã†ã€? 257 * @og.rev 5.1.9.0 (2010/08/01) TransactionTag 対応ã?上ä½ã« TransactionTag ãŒã‚れã?ã€ãã“ã‹ã‚‰Connection をもらã†ã€? 258 * @og.rev 5.3.6.0 (2011/06/01) é›?¨ˆã?åˆè¨ˆãªã©ã®Edit機è?ã«å¯¾å¿œã—ã¾ã™ã? 259 * @og.rev 5.3.7.0 (2011/07/01) TransactionReal ã®å¼•数変更 260 * @og.rev 5.3.7.0 (2011/07/01) PL/SQLã‹ã¤scope="request"ã§æ£ã—ã出力ã™ã‚‹ãŸã‚queryType,namesã‚‚ä¿å˜ã™ã‚‹ã? 261 * @og.rev 5.3.8.0 (2011/08/01) Transaction発生ç®?‰€ã§close() 262 * @og.rev 5.5.3.4 (2012/06/19) trace 時ã?ã€å®Ÿéš›ã®æ¤œç´¢å‡¦ç?‚’行ã‚ãªã?§˜ã«å¤‰æ›´ã€? 263 * @og.rev 5.6.5.3 (2013/06/28) LASTQUERYTYPE â‡?LASTSQLTYPE 変更ã€? 264 * 265 * @return 後続å?ç??æŒ?¤º(SKIP_BODY) 266 */ 267 @Override 268 public int doAfterBody() { 269 270 // 4.0.0 (2005/08/31) useQuotCheck() ã«ã‚ˆã‚‹?³?±?¬ã‚¤ãƒ³ã‚¸ã‚§ã‚¯ã‚·ãƒ§ãƒ³å¯¾ç? 271 useQuotCheck( quotCheck ); 272 // 5.0.0.2 (2009/09/15) XSS対ç? 273 useXssCheck( xssCheck ); 274 275 sql = getBodyString().trim(); 276 277 // 3.2.1.0 (2003/05/28) æœ?µ‚ï¼³?±?¬æ–?‚’ã€UserInfo ã«ã€ã‚ャãƒ?‚·ãƒ¥ã—ã¦ãŠãã€? 278 // setUserInfo( "LASTSQL", sql ); 279 // 5.1.6.0 (2010/05/01) DBLastSqlã®å‡¦ç??見直ã? 280 if( isMainTrans ) { 281 setUserInfo( "LASTSQL", sql, false ); 282 // 5.3.7.0 (2011/07/01) PL/SQLã‹ã¤scope="request"ã§æ£ã—ã出力ã™ã‚‹ãŸã‚queryType,namesã‚‚ä¿å˜ã™ã‚‹ã? 283 // setUserInfo( "LASTQUERYTYPE", queryType, false ); 284 setUserInfo( "LASTSQLTYPE", queryType, false ); // 5.6.5.3 (2013/06/28) 285 setUserInfo( "LASTNAMES", names, false ); 286 } 287 288 Query query = QueryFactory.newInstance( queryType ); 289 Transaction tran = null; 290 try { 291 if( maxRowCount < 0 ) { 292 maxRowCount = sysInt( "DB_MAX_ROW_COUNT" ); 293 } 294 295 // 5.1.9.0 (2010/08/01) TransactionTag 対å¿? 296 // final Transaction tran ; 297 TransactionTag tranTag = (TransactionTag)findAncestorWithClass( this,TransactionTag.class ); 298 if( tranTag == null ) { 299 // tran = new TransactionReal( dbid,getApplicationInfo() ); 300 tran = new TransactionReal( getApplicationInfo() ); // 5.3.7.0 (2011/07/01) 引数変更 301 } 302 else { 303 tran = tranTag.getTransaction(); 304 } 305 query.setTransaction( dbid,tran ); // 5.1.9.0 (2010/08/01) TransactionTag 対å¿? 306 307 query.setSkipRowCount( skipRowCount ); 308 query.setMaxRowCount( maxRowCount ); 309 // query.setConnectionID( dbid ); 310 query.setResourceManager( getResource() ); // 4.0.0 (2005/01/31) 311 312 if( trace ) { 313 // traceMsg = traceQuery( sql ); 314 traceMsg = traceQuery( sql,tran ); // 5.1.9.0 (2010/08/01) TransactionTag 対å¿? 315 // 5.5.3.4 (2012/06/19) trace 時ã?ã€å®Ÿéš›ã®æ¤œç´¢å‡¦ç?‚’行ã‚ãªã?§˜ã«å¤‰æ›´ 316 // query.setMaxRowCount( 1 ); 317 return(SKIP_BODY); 318 } 319 query.setStatement( sql ); 320 // query.setApplicationInfo( getApplicationInfo() ); // 3.8.7.0 (2006/12/15) 321 322 // 5.3.6.0 (2011/06/01) é›?¨ˆã?åˆè¨ˆãªã©ã®Edit機è?ã«å¯¾å¿œã—ã¾ã™ã? 323 if( isMainTrans ) { 324 String guikey = getGUIInfoAttri( "KEY" ); 325 String editName = getRequestValue( "editName" ); 326 DBEditConfig config = getUser().getEditConfig( guikey, editName ); 327 if( config != null ) { 328 query.setEditConfig( config ); 329 } 330 } 331 332 execute( query ); 333 334 executeCount = query.getExecuteCount(); 335 if( errCode < ErrorMessage.NG && executeCount >= 0 ) { // 異常以外ã?å ´å? 336 table = query.getDBTableModel(); 337 // 3.8.5.1 (2006/05/08) modifyType 属æ?を追åŠ?—ã¾ã™ã? 338 if( modifyType != null ) { 339 for( int row=0; row<executeCount; row++ ) { 340 table.setModifyType( row,modifyType ); 341 } 342 } 343 } 344 } 345 finally { 346 // if( query != null ) { query.close(); } 347 QueryFactory.close( query ); 348 if( tran != null ) { tran.close(); } // 5.3.8.0 (2011/08/01) Transaction発生ç®?‰€ã§close() 349 } 350 return(SKIP_BODY); 351 } 352 353 /** 354 * Taglibã®çµ‚äº?‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doEndTag() ã‚?オーãƒã?ライドã—ã¾ã™ã? 355 * 356 * @og.rev 2.0.0.8 (2002/10/09) command="NEW" ã®ã¨ãã?ã¿ã€displayMsg を表示ã•ã›ã¾ã™ã? 357 * @og.rev 2.1.1.4 (2002/11/25) ãƒ?ƒãƒ?‚°æ™‚ã«æœ?µ‚SQLをユーザーæƒ??ã‚’ã‚»ãƒ?ƒˆã™ã‚‹ã‚ˆã†ã«å¤‰æ›´ã€? 358 * @og.rev 2.1.2.1 (2002/11/27) ErrorMessage をクリアã—ãªã?‚ˆã?«å¤‰æ›´ã€? 359 * @og.rev 3.1.1.0 (2003/03/28) JspWriter オブジェクトã?使用ç®?‰€ã‚’ã?jspPrint() を使用ã™ã‚‹ã‚ˆã†ã«å¤‰æ›´ã€? 360 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応ã?release2() ã‚?doEndTag()ã§å‘¼ã¶ã€? 361 * @og.rev 3.2.1.0 (2003/05/28) æœ?µ‚ï¼³?±?¬æ–?‚’ã€UserInfo ã«ã€ã‚ャãƒ?‚·ãƒ¥ã—ã¦ãŠãã€? 362 * @og.rev 3.3.3.3 (2003/08/06) æ¤œç´¢çµæžœã®ä»¶æ•°ã‚’ã?"DB.COUNT" ã‚ーã§ãƒªã‚¯ã‚¨ã‚¹ãƒˆã«ã‚»ãƒ?ƒˆã™ã‚‹ã€? 363 * @og.rev 3.3.3.3 (2003/08/06) æ¤œç´¢çµæžœã‚’ã?"DB.ERR_CODE" ã‚ーã§ãƒªã‚¯ã‚¨ã‚¹ãƒˆã«ã‚»ãƒ?ƒˆã™ã‚‹ã€? 364 * @og.rev 3.5.4.7 (2004/02/06) 実行時間測定用ã®DIVè¦ç´?‚’出力ã—ã¦ãŠãã¾ã™ã? 365 * @og.rev 3.5.4.9 (2004/02/25) è¦å‘Šæ™‚ã«åœæ¢ã—ã¦ã?¾ã—ãŸãŒã?継続å?ç?•ã›ã¾ã™ã? 366 * @og.rev 3.5.5.0 (2004/03/12) ErrorMessage オブジェクトをã€query ãŒæ?功ã—ãŸæ™‚ã«ã‚‚クリアã™ã‚‹ã‚ˆã†ã«å¤‰æ›´ 367 * @og.rev 3.5.5.2 (2004/04/02) TaglibUtil.makeHTMLErrorTable メソãƒ?ƒ‰ã‚’利用 368 * @og.rev 3.5.5.8 (2004/05/20) ErrorMessage オブジェクトをã€ã‚³ãƒžãƒ³ãƒ‰ãŒ NEW ã®å ´åˆã?ã¿ã€ã‚¯ãƒªã‚¢ 369 * @og.rev 3.5.6.0 (2004/06/18) debugMsg 属æ?ã‚’å?力ã™ã‚‹ã‚ˆã?«ä¿®æ£ã—ã¾ã™ã? 370 * @og.rev 3.6.0.8 (2004/11/19) DBTableModel をセーブã™ã‚‹æ™‚ã«ã€ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ãƒã‚§ãƒ?‚¯ã‚’行ã„ã¾ã™ã? 371 * @og.rev 3.8.5.3 (2006/08/07) USER.LASTSQL ã¸ã®SQLæ–??ä¿å˜ã?ã€å®Ÿè¡Œå‰ã«è¡Œã£ã¦ãŠãã¾ã™ã? 372 * @og.rev 4.0.0.0 (2006/11/14) notfoundMsg 属æ?を追åŠ??displayMsg ã¯ã€VIEW_USE_DISPLAY_MSG ã§åˆ¶å¾¡ 373 * @og.rev 4.0.0.0 (2007/10/18) メãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹çµ±å? getResource().getMessage > getResource().getLabel ) 374 * @og.rev 4.3.3.0 (2008/09/22) 属æ? stopError ã®è¨å®šã«ã‚ˆã‚Šã€JSP処ç?‚’䏿¢ã™ã‚‹ã‹ã©ã?‹ã‚’制御ã—ã¾ã™ã? 375 * @og.rev 5.2.2.0 (2010/11/01) caseKey ã€caseVal 属æ?対å¿? 376 * @og.rev 5.3.5.0 (2011/05/01) 処ç?™‚é–?queryTime)ãªã©ã®æƒ??出力ã?有効/無効を指定ã—ã¾ã™ã? 377 * @og.rev 5.5.0.3 (2012/03/13) オーãƒã?フãƒãƒ¼ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ãŒå˜åœ¨ã—ãªã?¨ãã?ã€ä½•ã‚‚ã—ãªã??(改行も入れãªã? 378 * @og.rev 5.5.3.4 (2012/06/19) trace 時ã?ã€å®Ÿéš›ã®æ¤œç´¢å‡¦ç?‚’行ã‚ãªã?§˜ã«å¤‰æ›´ã€? 379 * @og.rev 5.6.3.0 (2013/04/01) エラー時メãƒ?‚»ãƒ¼ã‚¸å¤‰æ›´ 380 * 381 * @return 後続å?ç??æŒ?¤º 382 */ 383 @Override 384 public int doEndTag() { 385 debugPrint(); // 4.0.0 (2005/02/28) 386 // 5.2.2.0 (2010/11/01) caseKey ã€caseVal 属æ?対å¿? 387 if( !useTag() ) { return(EVAL_PAGE); } 388 389 if( trace ) { 390 jspPrint( traceMsg ); 391 return (SKIP_PAGE); // 5.5.3.4 (2012/06/19) trace 時ã?ã€å®Ÿéš›ã®æ¤œç´¢å‡¦ç?‚’行ã‚ãªã?§˜ã«å¤‰æ›´ã€? 392 } 393 394 String label = ""; // 4.0.0 (2005/11/30) 検索ã—ãªã‹ã£ãŸå?åˆã? 395 if( check( command, COMMAND_LIST ) ) { 396 StringBuilder buf = new StringBuilder( HybsSystem.BUFFER_SMALL ); 397 398 // 実行件数ã®è¡¨ç¤º command="NEW" ã®ã¨ãã?ã¿ã€displayMsg を表示ã•ã›ã¾ã™ã? 399 // 4.0.0 (2005/11/30) 出力é?ã®å¤‰æ›´ã€‚ä¸?•ªæœ??ã«å‡ºåŠ›ã—ã¾ã™ã? 400 // boolean useStatusBar = HybsSystem.sysBool( "VIEW_USE_DISPLAY_MSG" ); 401 if( CMD_NEW.equals( command ) ) { 402 // if( useStatusBar && executeCount > 0 && displayMsg != null && displayMsg.length() > 0 ) { 403 if( executeCount > 0 && displayMsg != null && displayMsg.length() > 0 ) { 404 buf.append( executeCount ); 405 // buf.append( getResource().getMessage( displayMsg ) ); 406 buf.append( getResource().getLabel( displayMsg ) ); 407 buf.append( HybsSystem.BR ); 408 } 409 else if( executeCount == 0 && notfoundMsg != null && notfoundMsg.length() > 0 ) { 410 // buf.append( getResource().getMessage( notfoundMsg ) ); 411 buf.append( getResource().getLabel( notfoundMsg ) ); 412 buf.append( HybsSystem.BR ); 413 } 414 } 415 416 // 3.3.3.3 (2003/08/06) æ¤œç´¢çµæžœã®ä»¶æ•°ã‚’ã?"DB.COUNT" ã‚ーã§ãƒªã‚¯ã‚¨ã‚¹ãƒˆã«ã‚»ãƒ?ƒˆã™ã‚‹ã€? 417 setRequestAttribute( "DB.COUNT" , String.valueOf( executeCount ) ); 418 // 3.3.3.3 (2003/08/06) æ¤œç´¢çµæžœã‚’ã?"DB.ERR_CODE" ã‚ーã§ãƒªã‚¯ã‚¨ã‚¹ãƒˆã«ã‚»ãƒ?ƒˆã™ã‚‹ã€? 419 setRequestAttribute( "DB.ERR_CODE", String.valueOf( errCode ) ); 420 421 // オーãƒã?フãƒãƒ¼æ™‚ã?メãƒ?‚»ãƒ¼ã‚¸ã‚’表示 422 // if( table != null && table.isOverflow() ) { 423 // 5.5.0.3 (2012/03/09) オーãƒã?フãƒãƒ¼ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ãŒå˜åœ¨ã—ãªã?¨ãã?ã€ä½•ã‚‚ã—ãªã??(改行も入れãªã? 424 if( table != null && table.isOverflow() && overflowMsg != null && overflowMsg.length() > 0 ) { 425 // buf.append( getResource().getMessage( overflowMsg ) ); 426 buf.append( getResource().getLabel( overflowMsg ) ); 427 buf.append( HybsSystem.BR ); 428 } 429 430 // 3.5.5.2 (2004/04/02) TaglibUtil.makeHTMLErrorTable メソãƒ?ƒ‰ã‚’利用 431 String err = TaglibUtil.makeHTMLErrorTable( errMessage,getResource() ); 432 if( err != null && err.length() > 0 ) { 433 buf.append( err ); 434 setSessionAttribute( errMsgId,errMessage ); 435 } 436 else if( CMD_NEW.equals( command ) ) { // 3.5.5.8 (2004/05/20) 437 removeSessionAttribute( errMsgId ); 438 } 439 label = buf.toString(); 440 441 if( table != null && ! commitTableObject( tableId, table ) ) { 442 // 3.6.0.8 (2004/11/19) トランザクションãƒã‚§ãƒ?‚¯ã‚’行ã„ã¾ã™ã? 443 // jspPrint( "QueryTag Query処ç?Œå‰²ã‚Šè¾¼ã¾ã‚Œã¾ã—ãŸã€?BTableModel ã¯ç™»éŒ²ã—ã¾ã›ã‚“ã€? ); 444 445 // 5.6.4.0 (2013/04/01) リソースã‹ã‚‰å‡ºåŠ›ã™ã‚‹ã‚ˆã?«å¯¾å¿? 446 ErrorMessage errMsgObj = new ErrorMessage( "QueryTag Query Error!" ); 447 errMsgObj.addMessage( 0,ErrorMessage.NG,"ERR0041" ); 448 jspPrint( TaglibUtil.makeHTMLErrorTable( errMsgObj,getResource() ) ); 449 450 return (SKIP_PAGE); 451 } 452 } 453 454 jspPrint( label ); 455 456 // 3.5.4.9 (2004/02/25) è¦å‘Šæ™‚ã«åœæ¢ã—ã¦ã?¾ã—ãŸãŒã?継続å?ç?•ã›ã¾ã™ã? 457 // int rtnCode = EVAL_PAGE; 458 final int rtnCode ; 459 if( errCode >= ErrorMessage.NG ) { // 異常 460 if( stopError ) { // 4.3.3.0 (2008/09/22) 属æ? stopError ã®è¨å®šã«ã‚ˆã‚Šã€å?ç?‚’䏿¢ã™ã‚‹ã‹ã‚’判æ–ã—ã¾ã™ã? 461 rtnCode = SKIP_PAGE; 462 } 463 else { 464 rtnCode = EVAL_PAGE; 465 } 466 } 467 else { 468 // ä»¶æ•°?ä»¶ã‹ã¤ stopZero = true 469 if( executeCount == 0 && stopZero ) { 470 rtnCode = SKIP_PAGE; 471 } 472 else { 473 rtnCode = EVAL_PAGE; 474 } 475 } 476 477 // 3.5.4.7 (2004/02/06) 478 long dyTime = System.currentTimeMillis()-dyStart; 479 480 // 5.3.5.0 (2011/05/01) 処ç?™‚é–?queryTime)ãªã©ã®æƒ??出力ã?有効/無効を指定ã—ã¾ã™ã? 481 if( useBeforeHtmlTag ) { 482 jspPrint( "<div id=\"queryTime\" value=\"" + (dyTime) + "\"></div>" ); // 3.5.6.3 (2004/07/12) 483 } 484 485 // 4.0.0 (2005/01/31) ã‚»ã‚ュリãƒ?‚£ãƒã‚§ãƒ?‚¯(ãƒ??タアクセス件数登録) 486 GUIInfo guiInfo = (GUIInfo)getSessionAttribute( HybsSystem.GUIINFO_KEY ); 487 if( guiInfo != null ) { guiInfo.addReadCount( executeCount,dyTime,sql ); } 488 489 return( rtnCode ); 490 } 491 492 /** 493 * タグリブオブジェクトをリリースã—ã¾ã™ã? 494 * ã‚ャãƒ?‚·ãƒ¥ã•れã¦å†åˆ©ç”¨ã•れるã?ã§ã€ãƒ•ィールドã?åˆæœŸè¨å®šã‚’行ã„ã¾ã™ã? 495 * 496 * @og.rev 2.0.0.4 (2002/09/27) カスタãƒ?‚¿ã‚°ã® release() メソãƒ?ƒ‰ã‚’ã?追åŠ? 497 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応ã?release2() ã‚?doEndTag()ã§å‘¼ã¶ã€? 498 * @og.rev 3.5.4.7 (2004/02/06) 実行時間測定用ã«ã€dyStart を追åŠ?—ã¾ã™ã? 499 * @og.rev 3.5.6.0 (2004/06/18) debugMsg 属æ?を追åŠ?—ã¾ã™ã? 500 * @og.rev 3.8.0.5 (2005/08/20) checkNames 属æ?を追åŠ?—ã¾ã™ã? 501 * @og.rev 3.8.5.1 (2006/05/08) modifyType 属æ?を追åŠ?—ã¾ã™ã? 502 * @og.rev 3.8.5.1 (2006/05/08) traceMsg 属æ?(トレース時ã?メãƒ?‚»ãƒ¼ã‚¸æ–?—å?)を追åŠ?—ã¾ã™ã? 503 * @og.rev 4.0.0.0 (2005/08/31) quotCheck 属æ?ã®è¿½åŠ? 504 * @og.rev 4.0.0.0 (2007/10/10) dbid ã®åˆæœŸå€¤ã‚’ã?"DEFAULT" ã‹ã‚‰ null ã«å¤‰æ›´ 505 * @og.rev 4.3.3.0 (2008/09/22) stopError 属æ?ã®è¿½åŠ? 506 * @og.rev 5.0.0.2 (2009/09/15) XSS対å¿? 507 * @og.rev 5.1.6.0 (2010/05/01) DBLastSqlã®å‡¦ç??ã€DBTableModelãŒæ–°è¦ä½œæ?ã•れãŸå?ç?§ã®ã¿è¡Œã†ã€? 508 * @og.rev 5.3.5.0 (2011/05/01) 処ç?™‚é–?queryTime)ãªã©ã®æƒ??出力ã?有効/無効を指定ã—ã¾ã™ã? 509 * 510 */ 511 @Override 512 protected void release2() { 513 super.release2(); 514 tableId = HybsSystem.TBL_MDL_KEY; 515 queryType = null; 516 // dbid = "DEFAULT"; 517 dbid = null; 518 command = CMD_NEW; 519 skipRowCount = 0; 520 maxRowCount = -1; 521 table = null; 522 sql = null; 523 // displayMsg = "MSG0033"; // ã€?»¶æ¤œç´¢ã—ã¾ã—ãŸã€? 524 displayMsg = HybsSystem.sys( "VIEW_DISPLAY_MSG" ); 525 overflowMsg = "MSG0007"; // æ¤œç´¢çµæžœãŒã?制é™è¡Œæ•°ã‚’è¶?ˆã¾ã—ãŸã®ã§ã€æ®‹ã‚Šã¯ã‚«ãƒ?ƒˆã•れã¾ã—ãŸã€? 526 notfoundMsg = "MSG0077"; // 対象ãƒ??ã‚¿ã¯ã‚りã¾ã›ã‚“ã§ã—ãŸã€? 527 executeCount = -1; // 検索/実行件数 528 names = null; 529 outMessage = true; 530 trace = false; 531 errCode = ErrorMessage.OK; 532 errMessage = null; 533 stopZero = false; 534 stopError = true; // 4.3.3.0 (2008/09/22) 535 dyStart = 0; 536 debugMsg = null; // 3.5.6.0 (2004/06/18) 537 checkNames = null; // 3.8.0.5 (2005/08/20) 538 quotCheck = HybsSystem.sysBool( "USE_SQL_INJECTION_CHECK" ); // 4.0.0 (2005/08/31) 539 modifyType = null; // 3.8.5.1 (2006/05/08) 540 traceMsg = null; // 3.8.5.3 (2006/08/07) 541 xssCheck = HybsSystem.sysBool( "USE_XSS_CHECK" ); // 5.0.0.2 (2009/09/15) 542 isMainTrans = true; // 5.1.6.0 (2010/05/01) DBLastSqlã®å‡¦ç??見直ã? 543 useBeforeHtmlTag = true ; // 5.3.5.0 (2011/05/01) 544 } 545 546 /** 547 * Query を実行ã—ã¾ã™ã? 548 * 549 * @og.rev 2.1.2.3 (2002/12/02) ãƒ??タベã?ス更新時ã«ã€æ›´æ–°ãƒ•ラグをセãƒ?ƒˆã™ã‚‹ã‚ˆã†ã«å¤‰æ›´ 550 * @og.rev 3.4.0.0 (2003/09/01) 登録エラー時ã?ã‚ーã¨å€¤ã‚’表示ã™ã‚‹ã‚ˆã†ã«å¤‰æ›´ã€? 551 * @og.rev 3.5.6.0 (2004/06/18) ãƒ?ƒãƒ?‚°æƒ??出力用ã«ã€printDebug メソãƒ?ƒ‰ã‚’追åŠ?? 552 * @og.rev 3.6.1.0 (2005/01/05) エラーコードã«ã‚ˆã‚‹ commit/rollback ã®åˆ¤æ–追åŠ? 553 * @og.rev 5.3.7.0 (2011/07/01) nameã®åˆ¤å®šã«ã‚¼ãƒæ–?—å?ã‚’ä»˜åŠ 554 * 555 * @param query オブジェクãƒ? 556 */ 557 protected void execute( final Query query ) { 558 String[] nameArray = null; 559 String[] values = null; 560 try { 561 // if( names == null ) { 562 if( names == null || names.length() == 0 ) { 563 query.execute(); 564 } 565 else { 566 nameArray = StringUtil.csv2Array( names ); 567 values = getRequest( nameArray ); 568 // 3.5.6.0 (2004/06/18) ãƒ?ƒãƒ?‚°æƒ??出力用 569 if( isDebug() ) { printDebug( nameArray,values ); } 570 query.execute( values ); 571 } 572 errCode = query.getErrorCode(); 573 errMessage = query.getErrorMessage(); 574 // 3.6.1.0 (2005/01/05) エラーコードã«ã‚ˆã‚‹ commit/rollback ã®åˆ¤æ–追åŠ? 575 // if( query.getUpdateFlag() ) { 576 if( query.isUpdate() ) { 577 if( errCode < ErrorMessage.NG ) { // 異常以下ã?å ´å? 578 query.commit(); 579 } 580 else { 581 query.rollback(); 582 } 583 } 584 } 585 catch( HybsSystemException ex ) { 586 query.rollback(); 587 588 // 4.0.0 (2005/02/28) エラー時ã?表示ã¨ãƒ?ƒãƒ?‚°æ™‚ã?表示を統ä¸?™ã‚‹ã? 589 String errMsg = "DATABASE ERROR! " + HybsSystem.CR ; 590 if( nameArray != null ) { 591 printDebug( nameArray,values ); 592 errMsg += debugMsg; 593 } 594 throw new HybsSystemException( errMsg,ex ); // 3.5.5.4 (2004/04/15) 引数ã®ä¸¦ã³é ?¤‰æ›´ 595 } 596 finally { 597 if( query != null ) { query.close(); } 598 } 599 } 600 601 /** 602 * ãƒ?ƒãƒ?‚°ç”¨ã«ã€??列データを書ãå?ã—ã¾ã™ã? 603 * 604 * @og.rev 3.5.6.0 (2004/06/18) æ–°è¦è¿½åŠ? 605 * 606 * @param nms 引数 names ã®é…å?ãƒ??ã‚¿ 607 * @param vals names ã«å¯¾å¿œã™ã‚‹ãƒªã‚¯ã‚¨ã‚¹ãƒˆæƒ…å ±ã®é…å? 608 */ 609 private void printDebug( final String[] nms,final String[] vals ) { 610 if( debugMsg == null ) { debugMsg = new StringBuilder(); } 611 612 debugMsg.append( " names=[" ); 613 debugMsg.append( StringUtil.array2csv( nms ) ); 614 debugMsg.append( "]" ); 615 debugMsg.append( HybsSystem.CR ); 616 debugMsg.append( " values=[" ); 617 debugMsg.append( StringUtil.array2csv( vals ) ); 618 debugMsg.append( "]" ); 619 debugMsg.append( HybsSystem.CR ); 620 } 621 622 /** 623 * åç§°é…å?ã‚’å?ã«ã€ãƒªã‚¯ã‚¨ã‚¹ãƒˆæƒ…å ±ã®ãƒ??ã‚¿ã‚’å–å¾—ã—ã¾ã™ã? 624 * checkNames 属æ?ã«è¨å®šã•れã¦ã?‚‹ã‚«ãƒ©ãƒ?Œã‚れã°ã€å?ã‚’æ£è¦åŒ–ã—ã¾ã™ã? 625 * 626 * @og.rev 3.8.0.5 (2005/08/20) ãƒªã‚¯ã‚¨ã‚¹ãƒˆå¤‰æ•°ã®æ£è¦åŒ–(checkNames)対å¿? 627 * 628 * @param nameArray ã‚ーã¨ãªã‚‹åç§°ã®é…å? 629 * 630 * @return ãã?ãƒªã‚¯ã‚¨ã‚¹ãƒˆæƒ…å ±ã®é…å? 631 */ 632 protected String[] getRequest( final String[] nameArray ) { 633 String[] rtn = new String[nameArray.length]; 634 635 for( int i=0; i<rtn.length; i++ ) { 636 rtn[i] = getRequestValue( nameArray[i] ); 637 638 // 3.8.0.5 (2005/08/20) checkNames ãŒã‚りã?rtn[i] ãŒã‚ã‚‹å?åˆã? 639 if( checkNames != null && checkNames.length() > 0 && rtn[i].length() > 0 ) { 640 if( ( "," + checkNames + "," ).indexOf( "," + nameArray[i] + "," ) >= 0 ) { 641 DBColumn dbColumn = getDBColumn( nameArray[i] ); 642 String val = dbColumn.valueSet( rtn[i] ); 643 if( val != null ) { rtn[i] = val; } 644 } 645 } 646 } 647 648 return rtn; 649 } 650 651 /** 652 * ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)ãƒ??ã‚¿ã®èªã¿å§‹ã‚ã®åˆæœŸå€¤ã‚’指定ã—ã¾ã™ã? 653 * 654 * @og.tag 655 * ãƒ??タベã?ス自体ã?検索ã¯,æŒ?®šã•れãŸSQLã®å…¨ä»¶ã‚’検索ã—ã¾ã™ãŒ, 656 * DBTableModelã®ãƒ??ã‚¿ã¨ã—ã¦ã¯ã€ã‚¹ã‚ãƒ??ä»¶æ•°åˆ??登録ã•れã¾ã›ã‚“ã€? 657 * サーãƒã?ã®ãƒ¡ãƒ¢ãƒªè³?ºã¨å¿œç”時間ã?確ä¿ã?為ã§ã™ã? 658 * 659 * @param count èªã¿å§‹ã‚ã®åˆæœŸå€¤ 660 */ 661 public void setSkipRowCount( final String count ) { 662 skipRowCount = nval( getRequestParameter( count ),skipRowCount ); 663 } 664 665 /** 666 * ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)ãƒ??ã‚¿ã®æœ?¤§èªã¿è¾¼ã¿ä»¶æ•°ã‚’指定ã—ã¾ã? 667 * (åˆæœŸå€¤:DB_MAX_ROW_COUNT[={@og.value org.opengion.hayabusa.common.SystemData#DB_MAX_ROW_COUNT}])ã€? 668 * 669 * @og.tag 670 * ãƒ??タベã?ス自体ã?検索ã¯,æŒ?®šã•れãŸSQLã®å…¨ä»¶ã‚’検索ã—ã¾ã™ãŒ, 671 * DBTableModelã®ãƒ??ã‚¿ã¨ã—ã¦ç™»éŒ²ã™ã‚‹æœ?¤§ä»¶æ•°ã‚’ã“ã®å€¤ã«è¨å®šã—ã¾ã™ã? 672 * サーãƒã?ã®ãƒ¡ãƒ¢ãƒªè³?ºã¨å¿œç”時間ã?確ä¿ã?為ã§ã™ã? 673 * 0 ã‚’ã‚»ãƒ?ƒˆã™ã‚‹ã¨ã€ç„¡åˆ¶é™?Integer.MAX_VALUE)ã«ãªã‚Šã¾ã™ã? 674 * (åˆæœŸå€¤:ユーザー定数ã®DB_MAX_ROW_COUNT[={@og.value org.opengion.hayabusa.common.SystemData#DB_MAX_ROW_COUNT}])ã€? 675 * 676 * @og.rev 5.5.8.5 (2012/11/27) 0を無制é™ã¨ã—ã¦å‡¦ç?—ã¾ã™ã? 677 * 678 * @param count æœ?¤§èªã¿è¾¼ã¿ä»¶æ•° 679 * @see org.opengion.hayabusa.common.SystemData#DB_MAX_ROW_COUNT 680 */ 681 public void setMaxRowCount( final String count ) { 682 maxRowCount = nval( getRequestParameter( count ),maxRowCount ); 683 if( maxRowCount == 0 ) { maxRowCount = Integer.MAX_VALUE ; } // 5.5.8.5 (2012/11/27) 684 } 685 686 /** 687 * ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)çµæžœã®DBTableModelã‚’ã?sessionã«ç™»éŒ²ã™ã‚‹ã¨ãã?ã‚ーを指定ã—ã¾ã?åˆæœŸå€¤:HybsSystem.TBL_MDL_KEY)ã€? 688 * 689 * @og.tag 690 * æ¤œç´¢çµæžœã‚ˆã‚Šã€DBTableModelオブジェクトを作æ?ã—ã¾ã™ã?ã“れをã?以下ã?view ç‰ã?ã‚¿ã‚°ã« 691 * 渡ã™å?åˆã«ã€??常ã¯ã€session を利用ã—ã¾ã™ã?ãã?å ´åˆã?登録ã‚ーã§ã™ã? 692 * query ã‚¿ã‚°ã‚’åŒæ™‚ã«å®Ÿè¡Œã—ã¦ã€çµæžœã‚’求ã‚ã‚‹å?åˆã?åŒä¸?ƒ¡ãƒ¢ãƒªã«é…ç½®ã•れる為ã€? 693 * ã“ã? tableId 属æ?を利用ã—ã¦ã€ãƒ¡ãƒ¢ãƒªç©ºé–“ã‚’åˆ?‘ã¾ã™ã? 694 * åˆæœŸå€¤ã¯ã€HybsSystem.TBL_MDL_KEY (={@og.value org.opengion.hayabusa.common.HybsSystem#TBL_MDL_KEY})ã§ã™ã? 695 * 696 * @param id sessionã«ç™»éŒ²ã™ã‚‹æ™‚ã? ID 697 */ 698 public void setTableId( final String id ) { 699 tableId = nval( getRequestParameter( id ),tableId ); // 3.8.0.9 (2005/10/17) 700 } 701 702 /** 703 * ã€TAG】Query を発行ã™ã‚‹ç‚ºã®ã‚¯ãƒ©ã‚¹ID(JDBC,JDBCCallable,JDBCErrMsg,JDBCUpdate)を指定ã—ã¾ã?{@og.doc03Link queryType åˆæœŸå€¤:JDBC})ã€? 704 * 705 * @og.tag 706 * 検索を実行ã™ã‚‹æ‰‹æ®µã¯ã€Query インターフェースã®å®Ÿè£?‚¯ãƒ©ã‚¹ã«ãªã‚Šã¾ã™ã? 707 * ã“ã?ã‚¿ã‚°ã§ã¯ã€Query.execute( String[] ) メソãƒ?ƒ‰ãŒå‘¼ã°ã‚Œã¾ã™ã? 708 * 例ãˆã°ã€ã‚¹ãƒˆã‚¢ãƒ‰ã?ãƒã‚·ãƒ¼ã‚¸ãƒ£ç‰ã‚’実行ã™ã‚‹å?åˆã«ã€queryType="JDBCErrMsg" 709 * を指定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã? 710 * åˆæœŸå€¤ã¯ã€?JDBC" ã§ã™ã? 711 * queryType ã¯ã€ã‚·ã‚¹ãƒ?ƒ リソース㮠Query_**** 宣è¨?? **** を与ãˆã¾ã™ã? 712 * ã“れらã?ã€Query インターフェースを継承ã—ãŸã‚µãƒ–クラスã§ã‚ã‚‹å¿?¦ãŒã‚りã¾ã™ã? 713 * 標準ã§ã€org.opengion.hayabusa.db 以下ã? Query_**** クラスãŒã?Query_**** 宣è¨?㨠714 * ã—ã¦ã€å®šç¾©ã•れã¦ã?¾ã™ã? 715 * 属æ?クラス定義㮠{@link org.opengion.hayabusa.db.Query Query} ã‚’å‚照願ã„ã¾ã™ã? 716 * {@og.doc03Link queryType Query_**** クラス} 717 * 718 * @param id Query を発行ã™ã‚‹ç‚ºã®å®Ÿã‚¯ãƒ©ã‚¹ ID 719 * @see org.opengion.hayabusa.db.Query Queryã®ã‚µãƒ–クラス 720 * @see org.opengion.hayabusa.db.Query#execute( String[] ) 721 */ 722 public void setQueryType( final String id ) { 723 queryType = getRequestParameter( id ); 724 } 725 726 /** 727 * ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)Queryオブジェクトを作æ?ã™ã‚‹æ™‚ã?DB接続IDを指定ã—ã¾ã™ã? 728 * 729 * @og.tag 730 * Queryオブジェクトを作æ?ã™ã‚‹æ™‚ã?DB接続IDを指定ã—ã¾ã™ã? 731 * ã“れã¯ã€ã‚·ã‚¹ãƒ?ƒ リソースã§ã€DEFAULT_DB_URL ç‰ã§æŒ?®šã—ã¦ã?‚‹ ãƒ??タベã?ス接続å? 732 * æƒ??ã«ã€XX_DB_URL を定義ã™ã‚‹ã“ã¨ã§ã€?dbid="XX" ã¨ã™ã‚‹ã¨ã€ã“㮠接続å?を使用ã—㦠733 * ãƒ??タベã?スã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã™ã? 734 * 735 * @param id ãƒ??タベã?ス接続ID 736 */ 737 public void setDbid( final String id ) { 738 dbid = nval( getRequestParameter( id ),dbid ); 739 } 740 741 /** 742 * ã€TAG】コマンãƒ?NEW,RENEW)ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?PlsqlUpdateTag,UpdateTag ã®å ´åˆã?ã€ENTRY)ã€? 743 * 744 * @og.tag 745 * コマンドã?,HTMLã‹ã‚‰(get/post)æŒ?®šã•れã¾ã™ã?ã§,CMD_xxx ã§è¨å®šã•れる 746 * フィールド定数値ã®ã?¥ã‚Œã‹ã‚’ã?æŒ?®šã§ãã¾ã™ã? 747 * 748 * @param cmd コマンãƒ?public static final 宣è¨?•れã¦ã?‚‹æ–?—å?) 749 * @see <a href="{@docRoot}/constant-values.html#org.opengion.hayabusa.taglib.QueryTag.CMD_NEW">コマンド定数</a> 750 */ 751 public void setCommand( final String cmd ) { 752 String cmd2 = getRequestParameter( cmd ); 753 if( cmd2 != null && cmd2.length() >= 0 ) { command = cmd2.toUpperCase(Locale.JAPAN); } 754 } 755 756 /** 757 * ã€TAGã€‘æ¤œç´¢çµæžœãŒï¼ä»¶ã®ã¨ãå?ç?‚’続行ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false[続行ã™ã‚‹])ã€? 758 * 759 * @og.tag 760 * åˆæœŸå€¤ã¯ã€false(続行ã™ã‚?ã§ã™ã? 761 * 762 * @param cmd æ¤œç´¢çµæžœãŒï¼ä»¶ã®ã¨ãã?[true:処ç?‚’䏿¢ã™ã‚‹/false:続行ã™ã‚‹] 763 */ 764 public void setStopZero( final String cmd ) { 765 stopZero = nval( getRequestParameter( cmd ),stopZero ); 766 } 767 768 /** 769 * ã€TAGã€‘æ¤œç´¢çµæžœã‚’ç”»é¢ä¸Šã«è¡¨ç¤ºã™ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹IDを指定ã—ã¾ã? 770 * (åˆæœŸå€¤:VIEW_DISPLAY_MSG[={@og.value org.opengion.hayabusa.common.SystemData#VIEW_DISPLAY_MSG}])ã€? 771 * 772 * @og.tag 773 * ã“ã“ã§ã¯ã€æ¤œç´¢çµæžœã®ä»¶æ•°ã‚?™»éŒ²ã•れãŸä»¶æ•°ã‚’ã¾ãšå?力ã—ã€? 774 * ãã?次ã«ã€ã“ã“ã§æŒ?®šã—ãŸãƒ¡ãƒ?‚»ãƒ¼ã‚¸ã‚’リソースã‹ã‚‰å–å¾—ã—ã¦è¡¨ç¤ºã—ã¾ã™ã? 775 * 件数を表示ã•ã›ãŸã„å ´åˆã?ã€displayMsg = "MSG0033"[ã€?»¶æ¤œç´¢ã—ã¾ã—ãŸ] ã‚’ã‚»ãƒ?ƒˆã—ã¦ãã ã•ã„ã€? 776 * 表示ã•ã›ãŸããªã??åˆã?, displayMsg = "" ã‚’ã‚»ãƒ?ƒˆã—ã¦ãã ã•ã„ã€? 777 * (åˆæœŸå€¤:シスãƒ?ƒ 定数ã®VIEW_DISPLAY_MSG[={@og.value org.opengion.hayabusa.common.SystemData#VIEW_DISPLAY_MSG}])ã€? 778 * 779 * @param id ãƒ?‚£ã‚¹ãƒ—レイã«è¡¨ç¤ºã•ã›ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ ID 780 * @see org.opengion.hayabusa.common.SystemData#VIEW_DISPLAY_MSG 781 */ 782 public void setDisplayMsg( final String id ) { 783 String ids = getRequestParameter( id ); 784 if( ids != null ) { displayMsg = ids; } 785 } 786 787 /** 788 * ã€TAG】検索ãƒ??ã‚¿ãŒæœ€å¤§æ¤œç´¢æ•°ã‚’オーãƒã?ã—ãŸå ´åˆã«è¡¨ç¤ºã™ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹IDを指定ã—ã¾ã? 789 * (åˆæœŸå€¤:MSG0007[æ¤œç´¢çµæžœãŒã?制é™è¡Œæ•°ã‚’è¶?ˆã¾ã—ãŸã®ã§ã€æ®‹ã‚Šã¯ã‚«ãƒ?ƒˆã•れã¾ã—ãŸ])ã€? 790 * 791 * @og.tag 792 * æ¤œç´¢çµæžœãŒã?maxRowCount ã§è¨å®šã•れãŸå€¤ã‚ˆã‚Šå¤šã„å ´åˆã?何らã‹ã?ãƒ??ã‚¿ã¯æ¤œç´¢ã•れã? 793 * åˆ?‚Šæ¨ã¦ã‚‰ã‚ŒãŸã“ã¨ã«ãªã‚Šã¾ã™ã? 794 * ã“ã“ã§ã¯ã€displayMsg を表示ã—ãŸå¾Œã?å¿?¦ã«å¿œã˜ã¦ã€ã“ã®ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ã‚’表示ã—ã¾ã™ã? 795 * 表示ã•ã›ãŸããªã??åˆã?, overflowMsg = "" ã‚’ã‚»ãƒ?ƒˆã—ã¦ãã ã•ã„ã€? 796 * åˆæœŸå€¤ã¯ã€MSG0007[æ¤œç´¢çµæžœãŒã?制é™è¡Œæ•°ã‚’è¶?ˆã¾ã—ãŸã®ã§ã€æ®‹ã‚Šã¯ã‚«ãƒ?ƒˆã•れã¾ã—ãŸ]ã§ã™ã? 797 * 798 * @param id ãƒ?‚£ã‚¹ãƒ—レイã«è¡¨ç¤ºã•ã›ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ ID 799 */ 800 public void setOverflowMsg( final String id ) { 801 String ids = getRequestParameter( id ); 802 if( ids != null ) { overflowMsg = ids; } 803 } 804 805 /** 806 * ã€TAGã€‘æ¤œç´¢çµæžœãŒã‚¼ãƒä»¶ã®å ´åˆã«è¡¨ç¤ºã™ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹IDを指定ã—ã¾ã?åˆæœŸå€¤:MSG0077[対象ãƒ??ã‚¿ã¯ã‚りã¾ã›ã‚“ã§ã—ãŸ])ã€? 807 * 808 * @og.tag 809 * ã“ã“ã§ã¯ã€æ¤œç´¢çµæžœãŒã‚¼ãƒä»¶ã®å ´åˆã?ã¿ã€ç‰¹åˆ¥ãªãƒ¡ãƒ?‚»ãƒ¼ã‚¸ã‚’表示ã•ã›ã¾ã™ã? 810 * 従æ¥ã¯ã€displayMsg ã¨å…¼ç”¨ã§ã€ã?0ã€?»¶æ¤œç´¢ã—ã¾ã—ãŸã€ã¨ã?†è¡¨ç¤ºã§ã—ãŸãŒã? 811 * displayMsg ã®åˆæœŸè¡¨ç¤ºã¯ã€OFF ã«ãªã‚Šã¾ã—ãŸã®ã§ã€ã‚¼ãƒä»¶ã®å ´åˆã?ã¿åˆ¥ã«è¡¨ç¤ºã•ã›ã¾ã™ã? 812 * 表示ã•ã›ãŸããªã??åˆã?, notfoundMsg = "" ã‚’ã‚»ãƒ?ƒˆã—ã¦ãã ã•ã„ã€? 813 * åˆæœŸå€¤ã¯ã€MSG0077[対象ãƒ??ã‚¿ã¯ã‚りã¾ã›ã‚“ã§ã—ãŸ]ã§ã™ã? 814 * 815 * @param id ãƒ?‚£ã‚¹ãƒ—レイã«è¡¨ç¤ºã•ã›ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ ID 816 */ 817 public void setNotfoundMsg( final String id ) { 818 String ids = getRequestParameter( id ); 819 if( ids != null ) { notfoundMsg = ids; } 820 } 821 822 /** 823 * ã€TAG】PL/SQLを利用ã™ã‚‹å ´åˆã?引数ã«ã‚»ãƒ?ƒˆã™ã¹ã?ãƒ??ã‚¿ã®åç§°ã‚’CSVå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã™ã? 824 * 825 * @og.tag 826 * è¤?•°ã‚ã‚‹å ´åˆã?ã€ã‚«ãƒ³ãƒžåŒºåˆ?‚Šæ–?—ã§æ¸¡ã—ã¾ã™ã? 827 * names 属æ?ã¯ã€queryType ã«å¿œã˜ã¦è¨å®šå¯å¦ãŒç•°ãªã‚Šã¾ã™ã?ã§ã€ã”注æ„ãã?•ã?? 828 * names ãªã—:JDBC,JDBCUpdate 829 * names ã‚り?šJDBCCallable,JDBCErrMsg,JDBCUpdate 830 * (JDBCUpdateã¯ã€names 属æ?ã®ã‚り/ãªã—両方ã«å¯¾å¿œã—ã¦ã?¾ã™ã?) 831 * 832 * @og.rev 3.0.1.3 (2003/03/11) names 属æ?ã« null ã§æ¸¡ã™å?åˆã?ãƒã‚°ã‚’ä¿®æ£ 833 * 834 * @param nm 引数ã®åç§°(è¤?•°ã‚ã‚‹å ´åˆã?ã€ã‚«ãƒ³ãƒžåŒºåˆ?‚Šæ–?? 835 */ 836 public void setNames( final String nm ) { 837 names = nval( getRequestParameter( nm ),names ); 838 } 839 840 /** 841 * ã€TAGã€‘æ¤œç´¢çµæžœã®ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ã‚’表示ã™ã‚‹/ã—ãªã„[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:true)ã€? 842 * 843 * @og.tag 844 * åˆæœŸå€¤ã¯ã€è¡¨ç¤ºã™ã‚‹?štrue ã§ã™ã? 845 * 846 * @param flag [true:表示ã™ã‚‹/ãれ以å¤?å«ã‚ãªã„] 847 */ 848 public void setOutMessage( final String flag ) { 849 outMessage = nval( getRequestParameter( flag ),outMessage ); 850 } 851 852 /** 853 * ã€TAG】引数㮠SQL æ–?‚’ EXPLAIN PLAN ã‚’[true:行ã†/ãれ以å¤?行ã‚ãªã„]を指定ã—ã¾ã?åˆæœŸå€¤:false)ã€? 854 * 855 * @og.tag 856 * 857 * ã“ã“ã§ã¯ã€ä»¥ä¸‹ã?処ç?‚’行ã„ã¾ã™ã? 858 * ?‘.引数㮠SQL æ–?‚’ç”»é¢ã«è¡¨ç¤ºã—ã¾ã™ã? 859 * ?’.引数㮠SQL æ–?‚’ EXPLAIN PLAN ã—ãŸçµæžœã‚’ã?ç”»é¢ã«è¡¨ç¤ºã—ã¾ã™ã? 860 * ãªãŠã?以å‰ã?ã€ã‚»ãƒ?‚·ãƒ§ãƒ³ã®ãƒˆãƒ¬ãƒ¼ã‚¹ã‚’行ã£ã¦ã?¾ã—ãŸãŒã?ãã?機è?ã¯ã€å»?¢ã?Ÿã—ã¾ã™ã? 861 * åˆæœŸå€¤ã¯ã€è¡Œã‚ãªã?¼šfalse ã§ã™ã? 862 * 863 * @param flag トレース [true:行ã†/ãれ以å¤?行ã‚ãªã„] 864 */ 865 public void setTrace( final String flag ) { 866 trace = nval( getRequestParameter( flag ),trace ); 867 } 868 869 /** 870 * ã€TAGã€‘ãƒªã‚¯ã‚¨ã‚¹ãƒˆå¤‰æ•°ã®æ£è¦åŒ–を行ã†ã‚«ãƒ©ãƒ?‚’CSVå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã™ã? 871 * 872 * @og.tag 873 * PL/SQLを利用ã™ã‚‹å ´åˆã?引数ã«ã‚»ãƒ?ƒˆã™ã¹ã?ãƒ??ã‚¿ã‚’ã?リクエスト変数㮠874 * 値ãã?ã¾ã¾ã§ã¯ãªãã?カラãƒ?‚ªãƒ–ジェクトã? valueSet メソãƒ?ƒ‰çµŒç”±ã§æ£è¦åŒ– 875 * ã—ãŸå€¤ã‚’使用ã™ã‚‹ã‚ˆã†ã«ã—ã¾ã™ã? 876 * 877 * @og.rev 3.8.0.5 (2005/08/20) æ–°è¦è¿½åŠ? 878 * 879 * @param nm ãƒªã‚¯ã‚¨ã‚¹ãƒˆå¤‰æ•°ã®æ£è¦åŒ–を行ã†ã‚«ãƒ©ãƒ? 880 */ 881 public void setCheckNames( final String nm ) { 882 checkNames = nval( getRequestParameter( nm ),checkNames ); 883 } 884 885 /** 886 * ã€TAG】DB検索時ã? モãƒ?‚£ãƒ•ァイタイプをæŒ?®šã—ã¾ã™[A:追åŠ?C:æ›´æ–°/D:削除]ã€? 887 * 888 * @og.tag 889 * DB検索時ã«ã€ãã®ãƒ??ã‚¿ã‚’A(追åŠ?ã€C(æ›´æ–°)ã€D(削除)ã®ãƒ¢ãƒ?‚£ãƒ•ァイタイプを 890 * ã¤ã‘ãŸçŠ¶æ…‹ã«ã—ã¾ã™ã? 891 * ãã?状態ã§ã€ãã®ã¾ã¾ã€update ã™ã‚‹äº‹ãŒå¯èƒ½ã«ãªã‚Šã¾ã™ã? 892 * 893 * @og.rev 3.8.5.1 (2006/05/08) æ–°è¦è¿½åŠ? 894 * 895 * @param type DB検索時ã? モãƒ?‚£ãƒ•ァイタイãƒ?[A:追åŠ?C:æ›´æ–°/D:削除] 896 */ 897 public void setModifyType( final String type ) { 898 modifyType = nval( getRequestParameter( type ),modifyType ); 899 } 900 901 /** 902 * ã€TAGã€‘ãƒªã‚¯ã‚¨ã‚¹ãƒˆæƒ…å ±ã® ã‚¯ã‚©ãƒ¼ãƒ?‚£ã‚·ãƒ§ãƒ³(') å˜åœ¨ãƒã‚§ãƒ?‚¯ã‚’実施ã™ã‚‹ã‹ã©ã?‹[true/false]ã‚’è¨å®šã—ã¾ã? 903 * (åˆæœŸå€¤:USE_SQL_INJECTION_CHECK[={@og.value org.opengion.hayabusa.common.SystemData#USE_SQL_INJECTION_CHECK}])ã€? 904 * 905 * @og.tag 906 * ?³?±?¬ã‚¤ãƒ³ã‚¸ã‚§ã‚¯ã‚·ãƒ§ãƒ³å¯¾ç–ã?ä¸?¤ã¨ã—ã¦ã€æš«å®šçš„ã§ã¯ã‚りã¾ã™ãŒã€SQLã®ãƒ‘ラメータ㫠907 * æ¸¡ã™æ–‡å—å?ã«ã‚¯ã‚©ãƒ¼ãƒ?‚£ã‚·ãƒ§ãƒ³(') を許ã•ãªã?¨å®šã«ã™ã‚Œã°ã€ã‚る程度ã¯é˜²æ¢ã§ãã¾ã™ã? 908 * æ•°å—タイプã?引数ã«ã¯ã€?or 5=5 ãªã©ã®ã‚¯ã‚©ãƒ¼ãƒ?‚£ã‚·ãƒ§ãƒ³ã‚’使用ã—ãªã?‚³ãƒ¼ãƒ‰ã‚’埋ã‚ã¦ã‚‚ã? 909 * æ•°å—ãƒã‚§ãƒ?‚¯ã§æ¤œå?å¯èƒ½ã§ã™ã?æ–?—タイプã?å ´åˆã?ã€å¿?š (')ã‚’ã?ãšã—ã¦ã€? 910 * ' or 'A' like 'A ã®ã‚ˆã†ãªå½¢å¼ã«ãªã‚‹ç‚ºã€?')ãƒã‚§ãƒ?‚¯ã?‘ã§ã‚‚有効ã§ã™ã? 911 * (') ãŒå«ã¾ã‚Œã¦ã?Ÿã‚¨ãƒ©ãƒ¼ã«ã™ã‚‹(true)?ã‹ãƒŽã?ãƒã‚§ãƒ?‚¯ã?false)を指定ã—ã¾ã™ã? 912 * åˆæœŸå€¤ã¯ã€SystemData#USE_SQL_INJECTION_CHECK ã§ã™ã? 913 * 914 * @og.rev 4.0.0.0 (2005/08/31) æ–°è¦è¿½åŠ? 915 * 916 * @param flag クォーãƒ?‚£ã‚·ãƒ§ãƒ³ãƒã‚§ãƒ?‚¯ [true:ã™ã‚‹/ãれ以å¤?ã—ãªã„] 917 */ 918 public void setQuotCheck( final String flag ) { 919 quotCheck = nval( getRequestParameter( flag ),quotCheck ); 920 } 921 922 /** 923 * ã€TAGã€‘ãƒªã‚¯ã‚¨ã‚¹ãƒˆæƒ…å ±ã® HTMLTagé–‹å§?終äº?–‡å?><) å˜åœ¨ãƒã‚§ãƒ?‚¯ã‚’実施ã™ã‚‹ã‹ã©ã?‹[true/false]ã‚’è¨å®šã—ã¾ã? 924 * (åˆæœŸå€¤:USE_XSS_CHECK[={@og.value org.opengion.hayabusa.common.SystemData#USE_XSS_CHECK}])ã€? 925 * 926 * @og.tag 927 * クãƒã‚¹ã‚µã‚¤ãƒˆã‚¹ã‚¯ãƒªãƒ—ティング(XSS)対ç–ã?ä¸?’°ã¨ã—ã¦less/greater than signã«ã¤ã?¦ã®ãƒã‚§ãƒ?‚¯ã‚’行ã„ã¾ã™ã? 928 * (><) ãŒå«ã¾ã‚Œã¦ã?Ÿã‚¨ãƒ©ãƒ¼ã«ã™ã‚‹(true)?ã‹ãƒŽã?ãƒã‚§ãƒ?‚¯ã?false)を指定ã—ã¾ã™ã? 929 * (åˆæœŸå€¤:シスãƒ?ƒ 定数ã®USE_XSS_CHECK[={@og.value org.opengion.hayabusa.common.SystemData#USE_XSS_CHECK}]) 930 * 931 * @og.rev 5.0.0.2 (2009/09/15) æ–°è¦è¿½åŠ? 932 * 933 * @param flag XSSãƒã‚§ãƒ?‚¯ [true:ã™ã‚‹/false:ã—ãªã„] 934 * @see org.opengion.hayabusa.common.SystemData#USE_XSS_CHECK 935 */ 936 public void setXssCheck( final String flag ) { 937 xssCheck = nval( getRequestParameter( flag ),xssCheck ); 938 } 939 940 /** 941 * ã€TAG】PLSQL/SQL処ç?‚¨ãƒ©ãƒ¼ã®æ™‚ã«å‡¦ç?‚’䏿¢ã™ã‚‹ã‹ã©ã?‹[true/false]ã‚’è¨å®šã—ã¾ã?åˆæœŸå€¤:true)ã€? 942 * 943 * @og.tag 944 * false(䏿¢ã—ãªã?ã«è¨å®šã™ã‚‹å?åˆã?後続å?ç?§ã¯ã€{@DB.ERR_CODE}ã®å€¤ã«ã‚ˆã‚Šã€? 945 * PLSQL/SQLã®ç•°å¸¸/æ£å¸¸çµ‚äº?«ã‚ˆã£ã¦åˆ?²å?ç??å¯èƒ½ã¨ãªã‚Šã¾ã™ã? 946 * åˆæœŸå€¤ã¯ã€true(䏿¢ã™ã‚‹)ã§ã™ã? 947 * 948 * @og.rev 4.3.3.0 (2008/09/22) æ–°è¦è¿½åŠ? 949 * 950 * @param flag [true:䏿¢ã™ã‚‹/false:䏿¢ã—ãªã„] 951 */ 952 public void setStopError( final String flag ) { 953 stopError = nval( getRequestParameter( flag ),stopError ); 954 } 955 956 /** 957 * 引数㮠SQL æ–?‚’ EXPLAIN PLAN ã—ã¾ã™ã? 958 * 959 * ã“ã“ã§ã¯ã€ä»¥ä¸‹ã?処ç?‚’行ã„ã¾ã™ã? 960 * ?‘.引数㮠SQL æ–?‚’ç”»é¢ã«è¡¨ç¤ºã—ã¾ã™ã? 961 * ?’.引数㮠SQL æ–?‚’ EXPLAIN PLAN ã—ãŸçµæžœã‚’ã?ç”»é¢ã«è¡¨ç¤ºã—ã¾ã™ã? 962 * ãªãŠã?ã“ã?処ç??ã€ORACLE 専用処ç?§ã™ã? 963 * 964 * @og.rev 3.8.5.3 (2006/08/07) æ–°è¦è¿½åŠ? 965 * @og.rev 3.8.7.0 (2006/12/15) アクセスãƒã‚°å–å¾—ã?為,ApplicationInfoオブジェクトをè¨å®? 966 * @og.rev 5.1.9.0 (2010/08/01) Transaction 対応ã—ã¾ã™ã? 967 * @og.rev 5.5.3.4 (2012/06/19) getUserInfo ã¯ã€ã‚ー部åˆ? ã‘ã§å‡¦ç?—ã¾ã™ã? 968 * 969 * @param sql EXPLAIN PLANã™ã‚‹SQL æ–? 970 * @param tran Transactionオブジェクãƒ? 971 * 972 * @return ãƒˆãƒ¬ãƒ¼ã‚¹çµæžœã®æ–?—å? 973 */ 974 // private String traceQuery( final String sql ) { 975 private String traceQuery( final String sql , final Transaction tran ) { 976 // ApplicationInfo appInfo = getApplicationInfo(); 977 978 // String userId = getUserInfo( "USER.ID" ) ; 979 String userId = getUserInfo( "ID" ) ; // 5.5.3.4 (2012/06/19) getUserInfo ã¯ã€ã‚ー部åˆ? ã‘ã§å‡¦ç?—ã¾ã™ã? 980 981 String[] arg1 = new String[] { userId }; 982 // DBUtil.dbExecute( "DELETE FROM PLAN_TABLE WHERE STATEMENT_ID = ?",arg1,appInfo,dbid ); 983 DBUtil.dbExecute( "DELETE FROM PLAN_TABLE WHERE STATEMENT_ID = ?",arg1,tran,dbid ); // 5.1.9.0 (2010/08/01) 984 985 String explan1 = "EXPLAIN PLAN SET STATEMENT_ID = '" + userId + "' FOR " + sql ; 986 // DBUtil.dbExecute( explan1,null,appInfo,dbid ); 987 DBUtil.dbExecute( explan1,null,tran,dbid ); // 5.1.9.0 (2010/08/01) 988 989 String[] arg2 = new String[] { userId,userId,userId }; 990 // String explan2 = "SELECT LEVEL,LPAD(' ',LEVEL,' ') || RTRIM( OPERATION ) || ' ' ||" 991 // + " RTRIM( OPTIONS ) || ' ' || RTRIM( OBJECT_NAME )" 992 // + " FROM PLAN_TABLE" 993 // + " WHERE STATEMENT_ID = ?" 994 // + " CONNECT BY PRIOR ID = PARENT_ID" 995 // + " AND STATEMENT_ID = ?" 996 // + " START WITH ID = 0" 997 // + " AND STATEMENT_ID = ?" ; 998 String explan2 = "select LEVEL as LVL" 999 + ",lpad(' ',LEVEL,' ') || rtrim( OPERATION ) || ' ' || rtrim( OPTIONS ) || ' ' || rtrim( OBJECT_NAME ) as EXECUTION_PLAN" 1000 + ",OBJECT_NAME as OBJ_NAME" 1001 + ",DECODE(INSTR(OBJECT_TYPE,' '),0,OBJECT_TYPE,SUBSTR(OBJECT_TYPE,1,INSTR(OBJECT_TYPE,' ')-1)) as OBJ_TYPE" 1002 + ",OPTIMIZER as OPT" 1003 + ",COST as CST" 1004 + ",CARDINALITY as CARD" 1005 + ",BYTES as BYTE" 1006 + ",ACCESS_PREDICATES as ACCS" 1007 + ",FILTER_PREDICATES as FILTER" 1008 + " from PLAN_TABLE" 1009 + " where STATEMENT_ID = ?" 1010 + " start with ID = 0" 1011 + " and STATEMENT_ID = ?" 1012 + " connect by prior ID = PARENT_ID" 1013 + " and STATEMENT_ID = ?" ; 1014 // String[][] plan = DBUtil.dbExecute( explan2,arg2,appInfo,dbid ); 1015 // String[][] plan = DBUtil.dbExecute( explan2,arg2,tran,dbid ); // 5.1.9.0 (2010/08/01) 1016 1017 // StringBuilder buf = new StringBuilder( HybsSystem.BUFFER_MIDDLE ); 1018 // buf.append( "<pre>" ).append( sql ).append( "</pre>" ).append( HybsSystem.BR ); 1019 // buf.append( "<table>" ); 1020 // buf.append( "<tr class=\"row_h\"><th>LEVEL</th><th>EXECUTION_PLAN</th></tr>" ); 1021 // for( int i=0; i<plan.length; i++ ) { 1022 // buf.append( "<tr class=\"row_" ).append( i%2 ).append( "\">" ); 1023 // buf.append( "<td>" ).append( plan[i][0] ).append( "</td>" ); 1024 // buf.append( "<td><pre>" ).append( plan[i][1] ).append( "</td></tr>" ); 1025 // } 1026 // buf.append( "</table>" ).append( HybsSystem.BR ); 1027 1028 String[][] plan = DBUtil.dbExecute( explan2,arg2,tran,dbid,true ); // 5.5.3.4 (2012/06/19) ヘッãƒ??æƒ??ã‚‚åŒæ™‚ã«å–å¾—ã™ã‚‹ã? 1029 1030 StringBuilder buf = new StringBuilder( HybsSystem.BUFFER_MIDDLE ); 1031 buf.append( "<pre>" ).append( sql ).append( "</pre>" ).append( HybsSystem.BR ); 1032 buf.append( "<table>" ); 1033 // 1行目ã®ãƒ˜ãƒƒãƒ??ã®å‡ºåŠ? 1034 int colsize = plan[0].length; 1035 buf.append( "<tr class=\"row_h\">" ); 1036 for( int j=0; j<colsize; j++ ) { 1037 buf.append( "<th>" ).append( plan[0][j] ).append( "</th>" ); 1038 } 1039 buf.append( "</tr>" ); 1040 1041 for( int i=1; i<plan.length; i++ ) { 1042 buf.append( "<tr class=\"row_" ).append( i%2 ).append( "\">" ); 1043 for( int j=0; j<colsize; j++ ) { 1044 if( j==1 ) { 1045 buf.append( "<td><pre>" ).append( plan[i][1] ).append( "</pre></td>" ); 1046 } 1047 else { 1048 buf.append( "<td>" ).append( plan[i][j] ).append( "</td>" ); 1049 } 1050 } 1051 buf.append( "</tr>" ); 1052 } 1053 buf.append( "</table>" ).append( HybsSystem.BR ); 1054 return buf.toString(); 1055 } 1056 1057 /** 1058 * ã€TAGã€?通常使ã?¾ã›ã‚“)ã‚¿ã‚°ã§å‡¦ç?•れる処ç?Œãƒ¡ã‚¤ãƒ³ã¨ãªã‚‹ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³å‡¦ç?‹ã©ã?‹ã‚’指定ã—ã¾ã?åˆæœŸå€¤:true)ã€? 1059 * 1060 * @og.tag 1061 * ã“ã?値ã¯ã€ãƒ•ァイルãƒ?‚¦ãƒ³ãƒãƒ¼ãƒ‰å?ç?«å½±éŸ¿ã—ã¾ã™ã?ã“ã?値ãŒtrueã«æŒ?®šã•ã‚ŒãŸæ™‚ã«commitã•れãŸDBTableModelã? 1062 * ファイルãƒ?‚¦ãƒ³ãƒãƒ¼ãƒ‰ã?対象ã®è¡¨ã«ãªã‚Šã¾ã™ã? 1063 * 1064 * ã“ã?パラメーターã¯ã€??常ã€å„ã‚¿ã‚°ã«ã‚ˆã‚Šå®Ÿè£?•れã?ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæŒ‡å®šã™ã‚‹å¿?¦ã?ã‚りã¾ã›ã‚“ã€? 1065 * ä½?—ã€?ã¤ã®JSPå†?§DBTableModelãŒè¤?•°ç”Ÿæ?ã•れるå?åˆã«ã€å‰ã«å‡¦ç?—ãŸDBTableModelã«ã¤ã?¦ãƒ•ァイルãƒ?‚¦ãƒ³ãƒãƒ¼ãƒ‰ã‚’ã•ã›ãŸã„ 1066 * å ´åˆã?ã€å¾Œã‚ã§DBTableModelを生æˆã™ã‚‹ã‚¿ã‚°ã§ã€æ?示çš?«ã“ã?値をfalseã«æŒ?®šã™ã‚‹ã“ã¨ã§ã€ãƒ•ァイルãƒ?‚¦ãƒ³ãƒãƒ¼ãƒ‰å?ç??対象ã‹ã‚‰ 1067 * 除外ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã? 1068 * 1069 * @og.rev 5.1.6.0 (2010/05/01) æ–°è¦ä½œæ? 1070 * 1071 * @param flag メイントランザクションã‹ã©ã?‹ 1072 */ 1073 public void setMainTrans( final String flag ) { 1074 isMainTrans = nval( getRequestParameter( flag ),isMainTrans ); 1075 } 1076 1077 /** 1078 * ã€TAGã€?処ç?™‚é–?queryTime)ãªã©ã®æƒ??出力[true:有効/false:無効]を指定ã—ã¾ã?åˆæœŸå€¤:true)ã€? 1079 * 1080 * @og.tag 1081 * Query ã§ã€æ¤œç´¢ã™ã‚‹å ´åˆã«ã€å?ç?™‚é–?queryTime)ãªã©ã®æƒ??ã‚’å?力ã—ã¦ã?¾ã™ãŒã€? 1082 * ViewForm ã§ã€CustomData ãªã©ã® éžHTML表示ビューを使用ã™ã‚‹å ´åˆã?ãƒ??ã‚¿ã¨ã—ã¦ã€? 1083 * 紛れ込んã§ã—ã¾ã?Ÿã‚ã?出力を抑制ã™ã‚‹å¿?¦ãŒã‚りã¾ã™ã? 1084 * true(有効)ã«ã™ã‚‹ã¨ã€ã“れらã®HTMLãŒå?力ã•れã¾ã™ã?false ã«ã™ã‚‹ã¨ã€å?力ã•れã¾ã›ã‚“ã€? 1085 * åˆæœŸå€¤ã¯ã€true(有効) ã§ã™ã? 1086 * 1087 * @og.rev 5.3.5.0 (2011/05/01) æ–°è¦è¿½åŠ? 1088 * 1089 * @param useTag æƒ??出力ã?有効/無効を指å®?[true:有効/false:無効] 1090 */ 1091 public void setUseBeforeHtmlTag( final String useTag ) { 1092 useBeforeHtmlTag = nval( getRequestParameter( useTag ),useBeforeHtmlTag ); 1093 } 1094 1095 /** 1096 * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºæ›¸ãè¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰ 1097 * 1098 * @og.rev 4.0.0.0 (2006/09/31) æ–°è¦è¿½åŠ? 1099 * @serialData 1100 * 1101 * @param strm ObjectOutputStreamオブジェクãƒ? 1102 */ 1103 private void writeObject( final ObjectOutputStream strm ) throws IOException { 1104 strm.defaultWriteObject(); 1105 } 1106 1107 /** 1108 * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºèªã¿è¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰ 1109 * 1110 * ã“ã“ã§ã¯ã€transient 宣è¨?•れãŸå†?ƒ¨å¤‰æ•°ã®å†??åˆæœŸåŒ–ãŒå¿?¦ãªãƒ•ィールドã?ã¿è¨å®šã—ã¾ã™ã? 1111 * 1112 * @og.rev 4.0.0.0 (2006/09/31) æ–°è¦è¿½åŠ? 1113 * @serialData 1114 * 1115 * @param strm ObjectInputStreamオブジェクãƒ? 1116 * @see #release2() 1117 */ 1118 private void readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException { 1119 strm.defaultReadObject(); 1120 } 1121 1122 /** 1123 * ã“ã?オブジェクトã?æ–?—å?表ç¾ã‚’è¿”ã—ã¾ã™ã? 1124 * 基本çš?«ãƒ?ƒãƒ?‚°ç›®çš?«ä½¿ç”¨ã—ã¾ã™ã? 1125 * 1126 * @return ã“ã?ã‚¯ãƒ©ã‚¹ã®æ–?—å?è¡¨ç¾ 1127 */ 1128 @Override 1129 public String toString() { 1130 return sql ; 1131 1132 // return org.opengion.fukurou.util.ToString.title( this.getClass().getName() ) 1133 // .println( "VERSION" ,VERSION ) 1134 // .println( "tableId" ,tableId ) 1135 // .println( "queryType" ,queryType ) 1136 // .println( "dbid" ,dbid ) 1137 // .println( "command" ,command ) 1138 // .println( "skipRowCount" ,skipRowCount ) 1139 // .println( "maxRowCount" ,maxRowCount ) 1140 // .println( "sql" ,sql ) 1141 // .println( "displayMsg" ,displayMsg ) 1142 // .println( "overflowMsg" ,overflowMsg ) 1143 // .println( "executeCount" ,executeCount ) 1144 // .println( "names" ,names ) 1145 // .println( "outMessage" ,outMessage ) 1146 // .println( "trace" ,trace ) 1147 // .println( "errCode" ,errCode ) 1148 // .println( "stopZero" ,stopZero ) 1149 // .println( "quotCheck" ,quotCheck ) 1150 // .println( "dyStart" ,dyStart ) 1151 // .println( "checkNames" ,checkNames ) 1152 // .println( "Other..." ,getAttributes().getAttribute() ) 1153 // .fixForm().toString() ; 1154 } 1155 }