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