1 package com.teamkonzept.webman.mainint.db.queries; 2 3 import java.util.Enumeration ; 4 import java.sql.*; 5 import java.io.*; 6 import com.teamkonzept.db.*; 7 import com.teamkonzept.webman.mainint.db.queries.CheckTableExistence; 10 import com.teamkonzept.webman.mainint.db.queries.content.*; 11 import com.teamkonzept.webman.mainint.WebmanExceptionHandler; 12 import com.teamkonzept.lib.TKNull; 13 14 24 public class TKDBContentTreeGetOpen extends TKExtendedPrepQuery 25 { 26 public final static boolean ISPREPARED = true; 27 public final static String [] PARAMORDER = { "NODE_ID" }; 28 public final static Object [][] TYPES = null; 29 public final static boolean[] SETRELEVANTS = { true }; 30 31 protected static Class [] queryClasses = { 32 CheckTableExistence.class, SelectContentNodeIdFromContentTree.class, SelectLeftRightNrFromContentTree.class, CreateTempTableContentNodeId.class, CreateTempTableContentNodeIdNodeId.class, InsertIntoTempSelectContentNodeIdLeftRightFromContentTree.class, InsertTempTableContentNodeIdNodeId.class, UpdateTempTableContentNodeIdNodeId.class, UpdateTempTableContentNodeIdNodeId2.class, SelectFromContentTreeContentInstanceTempTable.class, }; 43 44 public boolean execute() 45 { 46 try 47 { 48 init(queryClasses); 50 Object nid = queryParams.get("NODE_ID"); 52 53 boolean isNotOpen = aTKDBConnection.isAutoCommit(); 54 55 if (isNotOpen) 56 { 57 TKDBManager.beginTransaction(); } 59 60 if (nid == null || nid instanceof TKNull) 62 { 63 queries[1].execute(); 65 ResultSet rs = queries[1].fetchResultSet(); 66 if (rs != null && rs.next()) 67 { 68 nid = rs.getObject(1); 69 } 70 } 71 Object lnr = null; 73 Object rnr = null; 74 queries[2].setQueryParams("NODE_ID", nid); 75 queries[2].execute(); 76 ResultSet rs = queries[2].fetchResultSet(); 77 if (rs != null && rs.next()) 78 { 79 lnr = rs.getObject(1); 80 rnr = rs.getObject(2); 81 } 82 83 queries[0].setQueryParams("TABLE_NAME", "WEBMAN_TEMP"); queries[0].execute(); 85 ResultSet exist = queries[0].fetchResultSet(); 86 if (exist == null || !exist.next()) 87 queries[3].execute(); 88 queries[0].setQueryParams("TABLE_NAME", "WEBMAN_TEMP_2"); queries[0].execute(); 90 exist = queries[0].fetchResultSet(); 91 if (exist == null || !exist.next()) 92 queries[4].execute(); 93 97 queries[5].setQueryParams("LEFT_NR", lnr); 100 queries[5].setQueryParams("RIGHT_NR", rnr); 101 queries[5].execute(); 102 103 queries[6].execute(); 108 109 queries[7].execute(); 120 121 queries[8].execute(); 127 136 137 queries[9].execute(); 138 addResult(queries[9].fetchResultSet()); 139 140 if (isNotOpen) 141 { 142 aTKDBConnection.commitTransaction(); } 144 145 } 146 catch(Throwable t) 147 { 148 TKDBManager.safeRollbackTransaction(t); 149 } 150 return hasResults(); 151 } 152 153 public void initQuery(Connection con) 154 { 155 super.initQuery(con, 156 ISPREPARED, PARAMORDER, TYPES, SETRELEVANTS, null); 157 } 158 } 159 | Popular Tags |