001 /*
002 * Copyright (c) 2009 The openGion Project.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
013 * either express or implied. See the License for the specific language
014 * governing permissions and limitations under the License.
015 */
016 package org.opengion.hayabusa.taglib;
017
018 import org.opengion.fukurou.util.ErrorMessage;
019 import org.opengion.hayabusa.common.HybsSystem;
020 import org.opengion.hayabusa.common.HybsSystemException;
021 import org.opengion.hayabusa.db.DBTableModel;
022 import org.opengion.hayabusa.db.DBMetaData;
023
024 import static org.opengion.fukurou.util.StringUtil.nval ;
025
026 import java.util.Locale ;
027
028 /**
029 * ãƒ??タベã?スæƒ??(DBMetaData)より、テーブル、カラãƒ?‰ã?æƒ??を取得するタグですã?
030 *
031 * ãƒ??タベã?スに関するåŒ?‹¬çš?�ªæƒ??を提供するã?DatabaseMetaData のå†?®¹ã‚?
032 * 取得して、DBTableModel にセãƒ?ƒˆするタグですã?
033 *
034 * @og.formSample
035 * ●形式ï¼?lt;og:dbMetaDataQuery action="?¥?¥?¥" ?¥?¥?¥ />
036 * ●body?šなã�?
037 *
038 * ●Tag定義??
039 * <og:dbMetaDataQuery
040 * command 【TAG】コマンド[NEW/RENEW]をセãƒ?ƒˆしまã�?初期値:NEW)
041 * action ○ã?TAG】アクション(SCHEMAS,TABLES,COLUMNS,INDEXINFO,PROCEDURES)を指定しまã�?å¿??)ã€?
042 * catalog 【TAG】カタログ名をセãƒ?ƒˆしまã�?初期値:null)
043 * schema 【TAG】スキーマ名パターンをセãƒ?ƒˆしまã�?初期値:null)
044 * tableName 【TAG】テーブル名パターンをセãƒ?ƒˆしまã�?初期値:null)
045 * columnName 【TAG】å?名パターンをセãƒ?ƒˆしまã�?初期値:null)
046 * procName 【TAG】ã?ロシージャ名パターンをセãƒ?ƒˆしまã�?初期値:null)
047 * unique 【TAG】返すインãƒ?ƒƒクスの種類[true:ユニã?クのみ/false:非ユニã?ク含ã‚?を指定しまã�?初期値:false)
048 * approximate 【TAG】統計情報の精度[true:概数/false:正確]を指定しまã�?初期値:true)
049 * scope 【TAG】キャãƒ?‚·ュする場合ã?スコープ[request/page/session/applicaton]を指定しまã�?初期値:session)
050 * displayMsg 【TAG】検索結果を画面上に表示するメãƒ?‚»ージリソースIDを指定しまã�?初期値:MSG0033[ã€?»¶検索しました])
051 * notfoundMsg 【TAG】検索結果がゼロ件の場合に表示するメãƒ?‚»ージリソースIDを指定しまã�?初期値:MSG0077[対象ãƒ??タはありませんでした])
052 * tableId 【TAGã€?通常は使ã�?�¾せん)結果をDBTableModelに書き込んで、sessionに登録するときã?キーを指定しまã�?
053 * dbid 【TAGã€?通常は使ã�?�¾せん)Queryオブジェクトを作æ?する時ã?DB接続IDを指定しまã�?
054 * mainTrans 【TAGã€?通常使ã�?�¾せん)タグで処ç�?�•れる処ç�?�Œメインとなるトランザクション処ç�?�‹どã�?�‹を指定しまã�?初期値:false)
055 * debug 【TAG】デバッグæƒ??をå?力するかどã�?�‹[true/false]を指定しまã�?初期値:false)
056 * />
057 *
058 * ●使用ä¾?
059 * command属æ? は、columnSetタグのcommand属æ?と同ä¸??場合ã?み、å?ç�?�—ますã?
060 * [command属æ?]
061 * NEW 新è¦?
062 * RENEW 再検索
063 *
064 * [action属æ?]
065 * SCHEMAS こã?ãƒ??タベã?スで使用可能なスキーマ名を取得しますã?
066 * TABLES æŒ?®šされたカタログで使用可能なãƒ??ブルに関する記述を取得しますã?
067 * COLUMNS æŒ?®šされたカタログで使用可能なãƒ??ブル列ã?記述を取得しますã?
068 * INDEXINFO æŒ?®šされたãƒ??ブルのインãƒ?ƒƒクスと統計情報に関する記述を取得しますã?
069 * PROCEDURES æŒ?®šされたカタログで使用可能なストアドã?ロシージャに関する記述を取得しますã?
070 *
071 * @og.group ?¤?¢検索
072 *
073 * @version 4.0
074 * @author Kazuhiko Hasegawa
075 * @since JDK5.0,
076 */
077 public class DBMetaDataQueryTag extends CommonTagSupport {
078 //* こã?プログラãƒ??VERSIONæ–?—å?を設定しますã? {@value} */
079 private static final String VERSION = "5.1.6.0 (2010/05/01)" ;
080
081 private static final long serialVersionUID = 516020100501L ;
082
083 /** command 引数に渡す事ã?出来ã‚?コマンãƒ? 新è¦?{@value} */
084 public static final String CMD_NEW = "NEW" ;
085 /** command 引数に渡す事ã?出来ã‚?コマンãƒ? 再検索 {@value} */
086 public static final String CMD_RENEW = "RENEW" ;
087 /** command 引数に渡す事ã?出来ã‚?コマンãƒ?リスãƒ? */
088 private static final String[] COMMAND_LIST = new String[] { CMD_NEW , CMD_RENEW };
089
090 /** action 引数に渡す事ã?出来ã‚?アクションコマンãƒ? スキーマ名 {@value} */
091 public static final String ACT_SCHEMAS = "SCHEMAS" ;
092 /** action 引数に渡す事ã?出来ã‚?アクションコマンãƒ? ãƒ??ブル {@value} */
093 public static final String ACT_TABLES = "TABLES" ;
094 /** action 引数に渡す事ã?出来ã‚?アクションコマンãƒ? ãƒ??ブルåˆ?{@value} */
095 public static final String ACT_COLUMNS = "COLUMNS" ;
096 /** action 引数に渡す事ã?出来ã‚?アクションコマンãƒ? インãƒ?ƒƒクスと統計情報{@value} */
097 public static final String ACT_INDEXINFO = "INDEXINFO" ;
098 /** action 引数に渡す事ã?出来ã‚?アクションコマンãƒ? ストアドã?ロシージャ{@value} */
099 public static final String ACT_PROCEDURES = "PROCEDURES" ;
100
101 /** action 引数に渡す事ã?出来ã‚?コマンãƒ?リスãƒ? */
102 private static final String[] ACTION_LIST = new String[] {
103 ACT_SCHEMAS , ACT_TABLES , ACT_COLUMNS , ACT_INDEXINFO , ACT_PROCEDURES };
104
105 private String tableId = HybsSystem.TBL_MDL_KEY;
106
107 private String command = "NEW";
108 private String action = null; // taglib でå¿??属æ?にしますã?
109 private long dyStart = 0; // 実行時間測定用のDIV要ç´?
110 // private String displayMsg = "MSG0033"; // ã€?»¶検索しましたã€?
111 private String displayMsg = HybsSystem.sys( "VIEW_DISPLAY_MSG" );
112 private String notfoundMsg = "MSG0077"; // 対象ãƒ??タはありませんでしたã€?
113
114 // 4.0.0.0 (2007/10/10) dbid の初期値をã?"DEFAULT" から null に変更
115 // private String dbid = "DEFAULT";
116 private String dbid = null;
117 private String catalog = null;
118 private String schema = null;
119 private String tableName = null;
120 private String procName = null;
121 private String columnName = null;
122 private boolean unique = false; // true:ユニã?クのみ / false:非ユニã?ク含ã‚?
123 private boolean approximate = true; // true:概数 / false:正確
124 private boolean isMainTrans = true; // 5.1.6.0 (2010/05/01) DBLastSqlの処ç�??見直ã�?
125
126 /**
127 * Taglibの開始タグが見つかったときに処ç�?�™ã‚?doStartTag() ã‚?オーバã?ライドしますã?
128 *
129 * @og.rev 5.1.6.0 (2010/05/01) DBLastSqlの処ç�??、DBTableModelが新規作æ?されたå?ç�?�§のみ行うã€?
130 *
131 * @return 後続å?ç�??æŒ?¤º(SKIP_BODY)
132 */
133 @Override
134 public int doStartTag() {
135 dyStart = System.currentTimeMillis();
136 if( ! check( command, COMMAND_LIST ) ) { return(SKIP_BODY); }
137
138 useMainTrans( isMainTrans ); // 5.1.6.0 (2010/05/01) DBLastSqlの処ç�??見直ã�?
139 startQueryTransaction( tableId ); // 3.6.0.8 (2004/11/19)
140
141 // 3.5.6.5 (2004/08/09) 削除するのは、セãƒ?‚·ョンのオブジェクトでよいã€?
142 // 3.6.0.0 (2004/09/24) 削除するのは、scope="session" の場合ã?みã€?
143 if( "session".equals( getScope() ) ) {
144 removeSessionAttribute( tableId );
145 removeSessionAttribute( HybsSystem.VIEWFORM_KEY );
146 }
147
148 return(SKIP_BODY); // Body を評価しなã�?
149 }
150
151 /**
152 * Taglibの終äº?‚¿グが見つかったときに処ç�?�™ã‚?doEndTag() ã‚?オーバã?ライドしますã?
153 *
154 * @og.rev 4.0.0.0 (2006/11/14) notfoundMsg 属æ?を追åŠ??displayMsg は、VIEW_USE_DISPLAY_MSG で制御
155 * @og.rev 4.0.0.0 (2007/10/18) メãƒ?‚»ージリソース統å�? getResource().getMessage â‡?getResource().getLabel )
156 *
157 * @return 後続å?ç�??æŒ?¤º
158 */
159 @Override
160 public int doEndTag() {
161 debugPrint(); // 4.0.0 (2005/02/28)
162
163 String label = ""; // 4.0.0 (2005/11/30) 検索しなかったå?合ã?
164 if( check( command, COMMAND_LIST ) ) {
165 StringBuilder buf = new StringBuilder( HybsSystem.BUFFER_SMALL );
166
167 DBTableModel table = actionExec( action );
168 int executeCount = table.getRowCount(); // 検索した数
169
170 // 実行件数の表示 command="NEW" のときã?み、displayMsg を表示させますã?
171 // 4.0.0 (2005/11/30) 出力é?の変更。ä¸?•ªæœ??に出力しますã?
172 // boolean useStatusBar = HybsSystem.sysBool( "VIEW_USE_DISPLAY_MSG" );
173 if( CMD_NEW.equals( command ) ) {
174 // if( useStatusBar && executeCount > 0 && displayMsg != null && displayMsg.length() > 0 ) {
175 if( executeCount > 0 && displayMsg != null && displayMsg.length() > 0 ) {
176 buf.append( executeCount );
177 // buf.append( getResource().getMessage( displayMsg ) );
178 buf.append( getResource().getLabel( displayMsg ) );
179 buf.append( HybsSystem.BR );
180 }
181 else if( executeCount == 0 && notfoundMsg != null && notfoundMsg.length() > 0 ) {
182 // buf.append( getResource().getMessage( notfoundMsg ) );
183 buf.append( getResource().getLabel( notfoundMsg ) );
184 buf.append( HybsSystem.BR );
185 }
186 }
187
188 // 3.3.3.3 (2003/08/06) 検索結果の件数をã?"DB.COUNT" キーでリクエストにセãƒ?ƒˆするã€?
189 setRequestAttribute( "DB.COUNT" , String.valueOf( executeCount ) );
190 // 3.3.3.3 (2003/08/06) 検索結果をã?"DB.ERR_CODE" キーでリクエストにセãƒ?ƒˆするã€?
191 setRequestAttribute( "DB.ERR_CODE", String.valueOf( ErrorMessage.OK ) );
192
193 // オーバã?フロー時ã?メãƒ?‚»ージを表示
194 // if( table != null && table.isOverflow() ) {
195 // buf.append( getResource().getMessage( overflowMsg ) );
196 // buf.append( HybsSystem.BR );
197 // }
198
199 // 実行件数の表示
200 // 2.0.0.8 (2002/10/09) command="NEW" のときã?み、displayMsg を表示させますã?
201 // if( displayMsg != null && displayMsg.length() > 0 && command.equals( CMD_NEW ) ) {
202 // buf.append( executeCount );
203 // buf.append( getResource().getMessage( displayMsg ) );
204 // buf.append( HybsSystem.BR );
205 // }
206
207 label = buf.toString();
208
209 // 3.6.0.8 (2004/11/19) トランザクションチェãƒ?‚¯を行いますã?
210 if( ! commitTableObject( tableId, table ) ) {
211 jspPrint( "DBMetaDataQueryTag Query処ç�?�Œ割り込まれましたã€?BTableModel は登録しませんã€? );
212 return (SKIP_PAGE);
213 }
214 }
215 jspPrint( label );
216
217 // 3.5.4.7 (2004/02/06)
218 long dyTime = System.currentTimeMillis()-dyStart;
219 jspPrint( "<div id=\"queryTime\" value=\"" + (dyTime) + "\"></div>" ); // 3.5.6.3 (2004/07/12)
220 return(EVAL_PAGE);
221 }
222
223 /**
224 * タグリブオブジェクトをリリースしますã?
225 * キャãƒ?‚·ュされて再利用されるã?で、フィールドã?初期設定を行いますã?
226 *
227 * @og.rev 4.0.0.0 (2007/10/10) dbid の初期値をã?"DEFAULT" から null に変更
228 * @og.rev 5.1.6.0 (2010/05/01) DBLastSqlの処ç�??、DBTableModelが新規作æ?されたå?ç�?�§のみ行うã€?
229 */
230 @Override
231 protected void release2() {
232 super.release2();
233 tableId = HybsSystem.TBL_MDL_KEY;
234 // dbid = "DEFAULT";
235 dbid = null;
236 catalog = null;
237 schema = null;
238 tableName = null;
239 procName = null;
240 columnName = null;
241 unique = false; // true:ユニã?クのみ / false:非ユニã?ク含ã‚?
242 approximate = true; // true:概数 / false:正確
243 dyStart = 0;
244 // displayMsg = "MSG0033"; // ã€?»¶検索しましたã€?
245 displayMsg = HybsSystem.sys( "VIEW_DISPLAY_MSG" );
246 notfoundMsg = "MSG0077"; // 対象ãƒ??タはありませんでしたã€?
247 isMainTrans = true; // 5.1.6.0 (2010/05/01) DBLastSqlの処ç�??見直ã�?
248 }
249
250 /**
251 * æŒ?®šã?アクションを実行し、結果をã?DBTableModel にセãƒ?ƒˆして返しますã?
252 * アクションはã€?SCHEMAS,TABLES,COLUMNS,INDEXINFO,PROCEDURES)を指定しますã?
253 *
254 * SCHEMAS こã?ãƒ??タベã?スで使用可能なスキーマ名を取得しますã?
255 * TABLES æŒ?®šされたカタログで使用可能なãƒ??ブルに関する記述を取得しますã?
256 * COLUMNS æŒ?®šされたカタログで使用可能なãƒ??ブル列ã?記述を取得しますã?
257 * INDEXINFO æŒ?®šされたãƒ??ブルのインãƒ?ƒƒクスと統計情報に関する記述を取得しますã?
258 * PROCEDURES æŒ?®šされたカタログで使用可能なストアドã?ロシージャに関する記述を取得しますã?
259 *
260 * @og.rev 3.8.7.0 (2006/12/15) アクセスログ取得ã?為,ApplicationInfoオブジェクトを設å®?
261 *
262 * @param action アクションæ–?—å?
263 *
264 * @return ãƒ??ブルモãƒ?ƒ«
265 * @see <a href="../../../../constant-values.html#org.opengion.hayabusa.taglib.DBMetaDataQueryTag.ACT_COLUMNS">アクション定数</a>
266 */
267 private DBTableModel actionExec( final String action ) {
268 DBMetaData metaData = new DBMetaData();
269 metaData.setDbid( dbid );
270 metaData.setResourceManager( getResource() );
271 metaData.setApplicationInfo( getApplicationInfo() ); // 3.8.7.0 (2006/12/15)
272
273 DBTableModel tbl = null;
274
275 if( ACT_SCHEMAS.equals( action ) ) {
276 tbl = metaData.getSchemas() ;
277 }
278 else if( ACT_TABLES.equals( action ) ) {
279 tbl = metaData.getTables( catalog, schema, tableName ) ;
280 }
281 else if( ACT_COLUMNS.equals( action ) ) {
282 tbl = metaData.getColumns(catalog, schema, tableName, columnName) ;
283 }
284 else if( ACT_INDEXINFO.equals( action ) ) {
285 tbl = metaData.getIndexInfo(catalog, schema, tableName, unique, approximate) ;
286 }
287 else if( ACT_PROCEDURES.equals( action ) ) {
288 tbl = metaData.getProcedures(catalog, schema, procName) ;
289 }
290
291 return tbl ;
292 }
293
294 /**
295 * 【TAG】コマンド[NEW/RENEW]をセãƒ?ƒˆしまã�?初期値:NEW)ã€?
296 *
297 * @og.tag
298 * コマンドã?,HTMLから(get/post)æŒ?®šされますã?で,CMD_xxx で設定される
299 * フィールド定数値のã�?�¥れかをã?æŒ?®šできますã?
300 *
301 * @param cmd コマンãƒ?public static final 宣è¨?�•れてã�?‚‹æ–?—å?)
302 * @see <a href="../../../../constant-values.html#org.opengion.hayabusa.taglib.DBMetaDataQueryTag.CMD_NEW">コマンド定数</a>
303 */
304 public void setCommand( final String cmd ) {
305 String cmd2 = getRequestParameter( cmd );
306 if( cmd2 != null && cmd2.length() > 0 ) { command = cmd2.toUpperCase(Locale.JAPAN); }
307 }
308
309 /**
310 * 【TAG】アクション(SCHEMAS,TABLES,COLUMNS,INDEXINFO,PROCEDURES)を指定しますã?
311 *
312 * @og.tag
313 * アクションは,HTMLから(get/post)æŒ?®šされますã?で,ACT_xxx で設定される
314 * フィールド定数値のã�?�¥れかをã?æŒ?®šできますã?
315 *
316 * SCHEMAS こã?ãƒ??タベã?スで使用可能なスキーマ名を取得しますã?
317 * TABLES æŒ?®šされたカタログで使用可能なãƒ??ブルに関する記述を取得しますã?
318 * COLUMNS æŒ?®šされたカタログで使用可能なãƒ??ブル列ã?記述を取得しますã?
319 * INDEXINFO æŒ?®šされたãƒ??ブルのインãƒ?ƒƒクスと統計情報に関する記述を取得しますã?
320 * PROCEDURES æŒ?®šされたカタログで使用可能なストアドã?ロシージャに関する記述を取得しますã?
321 *
322 * @param cmd アクションæ–?—å?
323 * @see <a href="../../../../constant-values.html#org.opengion.hayabusa.taglib.DBMetaDataQueryTag.ACT_COLUMNS">アクション定数</a>
324 */
325 public void setAction( final String cmd ) {
326 action = getRequestParameter( cmd );
327
328 if( ! check( action, ACTION_LIST ) ) {
329
330 StringBuilder errMsg = new StringBuilder( HybsSystem.BUFFER_MIDDLE );
331 errMsg.append( "æŒ?®šã?アクションは実行できません。アクションエラー" );
332 errMsg.append( HybsSystem.CR );
333 errMsg.append( "action=[" ).append( action ).append( "] " );
334 errMsg.append( HybsSystem.CR );
335
336 for( int i=0; i<ACTION_LIST.length; i++ ) {
337 errMsg.append( " | " );
338 errMsg.append( ACTION_LIST[i] );
339 }
340 errMsg.append( " | " );
341 throw new HybsSystemException( errMsg.toString() );
342 }
343 }
344
345 /**
346 * 【TAGã€?通常は使ã�?�¾せん)Queryオブジェクトを作æ?する時ã?DB接続IDを指定しますã?
347 *
348 * @og.tag Queryオブジェクトを作æ?する時ã?DB接続IDを指定しますã?
349 *
350 * @param id ãƒ??タベã?ス接続ID
351 */
352 public void setDbid( final String id ) {
353 dbid = nval( getRequestParameter( id ),dbid );
354 }
355
356 /**
357 * 【TAG】カタログ名をセãƒ?ƒˆしまã�?初期値:null)ã€?
358 *
359 * @og.tag ãƒ??タベã?スに格納されたカタログ名とä¸??しなければならなã�??
360 * "" はカタログなしでカタログ名を検索するã€?
361 * null は、カタログ名を検索の限定に使用してはならなã�?�“とを意味する
362 *
363 * @param catalog カタログå�?
364 */
365 public void setCatalog( final String catalog ) {
366 this.catalog = nval( getRequestParameter( catalog ),this.catalog );
367 }
368
369 /**
370 * 【TAG】スキーマ名パターンをセãƒ?ƒˆしまã�?初期値:null)ã€?
371 *
372 * @og.tag ãƒ??タベã?スに格納されたスキーマ名とä¸??しなければならなã�??
373 * "" はスキーマなしでスキーマ名を検索するã€?
374 * null は、スキーマ名を検索の限定に使用してはならなã�?�“とを意味する
375 *
376 * @param schema スキーマ名パターン
377 */
378 public void setSchema( final String schema ) {
379 this.schema = nval( getRequestParameter( schema ),this.schema );
380 }
381
382 /**
383 * 【TAG】テーブル名パターンをセãƒ?ƒˆしまã�?初期値:null)ã€?
384 *
385 * @og.tag 。データベã?スに格納されたãƒ??ブル名とä¸??しなければならなã�?
386 *
387 * @param tableName ãƒ??ブル名パターン
388 */
389 public void setTableName( final String tableName ) {
390 this.tableName = nval( getRequestParameter( tableName ),this.tableName );
391 }
392
393 /**
394 * 【TAG】ã?ロシージャ名パターンをセãƒ?ƒˆしまã�?初期値:null)ã€?
395 *
396 * @og.tag 。データベã?スに格納されたプロシージャ名とä¸??しなければならなã�?
397 *
398 * @param procName プロシージャ名パターン
399 */
400 public void setProcName( final String procName ) {
401 this.procName = nval( getRequestParameter( procName ),this.procName );
402 }
403
404 /**
405 * 【TAG】å?名パターンをセãƒ?ƒˆしまã�?初期値:null)ã€?
406 *
407 * @og.tag ãƒ??タベã?スに格納された列名とä¸??しなければならなã�?
408 *
409 * @param columnName 列名パターン
410 */
411 public void setColumnName( final String columnName ) {
412 this.columnName = nval( getRequestParameter( columnName ),this.columnName );
413 }
414
415 /**
416 * 【TAG】返すインãƒ?ƒƒクスの種類[true:ユニã?クのみ/false:非ユニã?ク含ã‚?を指定しまã�?初期値:false)ã€?
417 *
418 * @og.tag true の場合ã?、ä¸?„�の値のインãƒ?ƒƒクスã�?�‘を返すã€?
419 * false の場合ã?、ä¸?„�であるかどã�?�‹にかかわらずインãƒ?ƒƒクスを返す
420 * 初期値は、false:非ユニã?ク含ã‚?ですã?
421 *
422 * @param uniqFlag 返すインãƒ?ƒƒクスの種é¡?[true:ユニã?クのみ/false:非ユニã?ク含ã‚?
423 */
424 public void setUnique( final String uniqFlag ) {
425 this.unique = nval( getRequestParameter( uniqFlag ),this.unique );
426 }
427
428 /**
429 * 【TAG】統計情報の精度[true:概数/false:正確]を指定しまã�?初期値:true)ã€?
430 *
431 * @og.tag æŒ?®šされたãƒ??ブルのインãƒ?ƒƒクスと統計情報に関する記述を取得するå?合に
432 * 結果の精度を指定しますã?
433 * true の場合ã?、結果は概数またã?ãƒ??タ値から外れることもあるã?
434 * false の場合ã?、正確であることが要求される
435 * 初期値は、true:概数 ですã?
436 *
437 * @param appFlag 統計情報の精度 [true:概数/false:正確]
438 */
439 public void setApproximate( final String appFlag ) {
440 this.approximate = nval( getRequestParameter( appFlag ),this.approximate );
441 }
442
443 /**
444 * 【TAGã€?通常は使ã�?�¾せん)結果のDBTableModelをã?sessionに登録するときã?キーを指定しまã�?
445 * (初期値:HybsSystem#TBL_MDL_KEY[={@og.value org.opengion.hayabusa.common.HybsSystem#TBL_MDL_KEY}])ã€?
446 *
447 * @og.tag
448 * 検索結果より、DBTableModelオブジェクトを作æ?しますã?これをã?下流ã?viewタグ等に
449 * 渡すå?合にã€??常は、session を利用しますã?そã?場合ã?登録キーですã?
450 * query タグを同時に実行して、結果を求めるå?合ã?同ä¸?ƒ¡モリに配置される為ã€?
451 * こã? tableId 属æ?を利用して、メモリ空間をåˆ?�‘ますã?
452 * (初期値:HybsSystem#TBL_MDL_KEY[={@og.value org.opengion.hayabusa.common.HybsSystem#TBL_MDL_KEY}])ã€?
453 *
454 * @param id sessionに登録する時ã? ID
455 */
456 public void setTableId( final String id ) {
457 this.tableId = nval( getRequestParameter( id ),tableId );
458 }
459
460 /**
461 * 【TAG】検索結果を画面上に表示するメãƒ?‚»ージリソースIDを指定しまã�?初期値:MSG0033[ã€?»¶検索しました])ã€?
462 *
463 * @og.tag
464 * ここでは、検索結果の件数ã‚?™»録された件数をまずå?力しã€?
465 * そã?次に、ここでæŒ?®šしたメãƒ?‚»ージをリソースから取得して
466 * 表示しますã?
467 * 表示させたくなã�??合ã?, displayMsg = "" をセãƒ?ƒˆしてくださいã€?
468 * 初期値は、検索件数を表示しますã?
469 *
470 * @param id ãƒ?‚£スプレイに表示させるメãƒ?‚»ージ ID
471 */
472 public void setDisplayMsg( final String id ) {
473 String ids = getRequestParameter( id );
474 if( ids != null ) { displayMsg = ids; }
475 }
476
477 /**
478 * 【TAG】検索結果がゼロ件の場合に表示するメãƒ?‚»ージリソースIDを指定しまã�?初期値:MSG0077[対象ãƒ??タはありませんでした])ã€?
479 *
480 * @og.tag
481 * ここでは、検索結果がゼロ件の場合ã?み、特別なメãƒ?‚»ージを表示させますã?
482 * 従来は、displayMsg と兼用で、ã?0ã€?»¶検索しました』とã�?�†表示でしたがã?
483 * displayMsg の初期表示は、OFF になりましたので、ゼロ件の場合ã?み別に表示させますã?
484 * 表示させたくなã�??合ã?, notfoundMsg = "" をセãƒ?ƒˆしてくださいã€?
485 * 初期値は、MSG0077[対象ãƒ??タはありませんでした]ですã?
486 *
487 * @param id ãƒ?‚£スプレイに表示させるメãƒ?‚»ージ ID
488 */
489 public void setNotfoundMsg( final String id ) {
490 String ids = getRequestParameter( id );
491 if( ids != null ) { notfoundMsg = ids; }
492 }
493
494 /**
495 * タグの名称をã?返しますã?
496 * 自åˆ??身のクラス名よりã?自動的に取り出せなã�?�Ÿめã?こã?メソãƒ?ƒ‰をオーバã?ライドしますã?
497 *
498 * @og.rev 4.0.0.0 (2005/01/31) 新規追åŠ?
499 *
500 * @return タグの名称
501 */
502 @Override
503 protected String getTagName() {
504 return "dbMetaDataQuery" ;
505 }
506
507 /**
508 * 【TAGã€?通常使ã�?�¾せん)タグで処ç�?�•れる処ç�?�Œメインとなるトランザクション処ç�?�‹どã�?�‹を指定しまã�?初期値:false)ã€?
509 *
510 * @og.tag
511 * こã?値は、ファイルãƒ?‚¦ンロードå?ç�?�«影響しますã?こã?値がtrueにæŒ?®šされた時にcommitされたDBTableModelã�?
512 * ファイルãƒ?‚¦ンロードã?対象の表になりますã?
513 *
514 * こã?パラメーターはã€??常、各タグにより実è£?�•れã?ユーザーが指定するå¿?¦�ã?ありませんã€?
515 * ä½?�—ã€?つのJSPå†?�§DBTableModelがè¤?•°生æ?されるå?合に、前に処ç�?�—たDBTableModelにつã�?�¦ファイルãƒ?‚¦ンロードをさせたい
516 * 場合ã?、後ろでDBTableModelを生成するタグで、æ?示çš?�«こã?値をfalseにæŒ?®šすることで、ファイルãƒ?‚¦ンロードå?ç�??対象から
517 * 除外することができますã?
518 *
519 * @og.rev 5.1.6.0 (2010/05/01) 新規作æ?
520 *
521 * @param flag メイントランザクションかどã�?�‹
522 */
523 public void setMainTrans( final String flag ) {
524 isMainTrans = nval( getRequestParameter( flag ),isMainTrans );
525 }
526
527 /**
528 * こã?オブジェクトã?æ–?—å?表現を返しますã?
529 * 基本çš?�«ãƒ?ƒ�ãƒ?‚°目çš?�«使用しますã?
530 *
531 * @return こã?クラスのæ–?—å?表現
532 */
533 @Override
534 public String toString() {
535 return org.opengion.fukurou.util.ToString.title( this.getClass().getName() )
536 .println( "VERSION" ,VERSION )
537 .println( "tableId" ,tableId )
538 .println( "command" ,command )
539 .println( "action" ,action )
540 .println( "dyStart" ,dyStart )
541 .println( "displayMsg" ,displayMsg )
542 .println( "dbid" ,dbid )
543 .println( "catalog" ,catalog )
544 .println( "schema" ,schema )
545 .println( "tableName" ,tableName )
546 .println( "procName" ,procName )
547 .println( "columnName" ,columnName )
548 .println( "unique" ,unique )
549 .println( "approximate" ,approximate)
550 .println( "Other..." ,getAttributes().getAttribute() )
551 .fixForm().toString() ;
552 }
553 }