1 package com.teamkonzept.webman.mainint.db.queries.oracle; 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.oracle.helper.*; 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 27 public final static boolean isPrepared = true; 28 29 public final static String [] paramOrder = { "NODE_ID" }; 30 31 public final static Object [][] types = null; 32 33 public final static boolean[] setRelevants = { true }; 34 35 124 125 protected static Class [] queryClasses = { 126 CheckTableExistence.class, SelectContentNodeIdFromContentTree.class, SelectLeftRightNrFromContentTree.class, CreateTempTableContentNodeId.class, CreateTempTableContentNodeIdNodeId.class, InsertIntoTempSelectContentNodeIdLeftRightFromContentTree.class, InsertTempTableContentNodeIdNodeId.class, UpdateTempTableContentNodeIdNodeId.class, UpdateTempTableContentNodeIdNodeId2.class, SelectFromContentTreeContentInstanceTempTable.class, }; 137 138 public boolean execute() 139 { 140 try 141 { 142 init(queryClasses); 144 Object nid = queryParams.get("NODE_ID"); 146 147 boolean isNotOpen = aTKDBConnection.isAutoCommit(); 148 149 if (isNotOpen) 150 { 151 TKDBManager.beginTransaction(); } 153 154 if (nid == null || nid instanceof TKNull) 156 { 157 queries[1].execute(); 159 ResultSet rs = queries[1].fetchResultSet(); 160 if (rs != null && rs.next()) 161 { 162 nid = rs.getObject(1); 163 } 164 } 165 Object lnr = null; 167 Object rnr = null; 168 queries[2].setQueryParams("NODE_ID", nid); 169 queries[2].execute(); 170 ResultSet rs = queries[2].fetchResultSet(); 171 if (rs != null && rs.next()) 172 { 173 lnr = rs.getObject(1); 174 rnr = rs.getObject(2); 175 } 176 177 queries[0].setQueryParams("TABLE_NAME", "WEBMAN_TEMP"); queries[0].execute(); 179 ResultSet exist = queries[0].fetchResultSet(); 180 if (exist != null && exist.next()) 181 { 182 } 183 else 184 { 185 queries[3].execute(); 187 } 188 189 queries[0].setQueryParams("TABLE_NAME", "WEBMAN_TEMP_2"); queries[0].execute(); 191 exist = queries[0].fetchResultSet(); 192 if (exist != null && exist.next()) 193 { 194 } 195 else 196 { 197 queries[4].execute(); 199 } 200 201 205 queries[5].setQueryParams("LEFT_NR", lnr); 208 queries[5].setQueryParams("RIGHT_NR", rnr); 209 queries[5].execute(); 210 211 queries[6].execute(); 216 217 queries[7].execute(); 228 229 queries[8].execute(); 235 244 245 queries[9].execute(); 246 addResult(queries[9].fetchResultSet()); 247 248 if (isNotOpen) 249 { 250 aTKDBConnection.commitTransaction(); } 252 253 } 254 catch(Throwable t) 255 { 256 TKDBManager.safeRollbackTransaction(t); 257 } 258 return hasResults(); 259 } 260 261 public void initQuery(Connection con) 262 { 263 super.initQuery(con, 264 isPrepared, paramOrder, types, setRelevants, null); 265 } 266 } 267 | Popular Tags |