1 package com.teamkonzept.webman.mainint.db.queries.oracle; 2 3 import java.sql.*; 4 import java.util.Enumeration ; 5 import com.teamkonzept.db.*; 6 import com.teamkonzept.webman.mainint.db.queries.content.*; 7 import com.teamkonzept.webman.mainint.db.queries.CheckTableExistence; 8 import com.teamkonzept.webman.mainint.WebmanExceptionHandler; 9 10 19 public class TKDBContentTreeIsDependent extends TKExtendedPrepQuery 20 { 21 22 public static boolean isPrepared = true; 23 public static String [] paramOrder = { "CONTENT_NODE_ID" }; 24 public static Object [][] types = null; 25 public static boolean[] setRelevants = { true }; 26 27 protected static Class [] queryClasses = { 28 CheckTableExistence.class, CreateTempTableContentNodeId.class, CreateTempTableSiteNodeId.class, SelectLeftRightNrFromContentTree.class, SelectAllContentNodeId.class, InsertTempTableContentNodeId.class, InsertTempTableSiteNodeId.class, SelectSiteNodeId.class }; 39 40 public boolean execute() 41 { 42 try 43 { 44 init(queryClasses); 46 boolean isNotOpen = aTKDBConnection.isAutoCommit(); 47 if (isNotOpen) 48 { 49 TKDBManager.beginTransaction(); } 51 52 queries[0].setQueryParams("TABLE_NAME", "WEBMAN_TEMP"); queries[0].execute(); 57 ResultSet exist = queries[0].fetchResultSet(); 58 if (exist == null || !exist.next()) 59 { 60 queries[1].execute(); 62 } 63 queries[0].setQueryParams("TABLE_NAME", "WEBMAN_TEMP2"); 64 queries[0].execute(); 65 exist = queries[0].fetchResultSet(); 66 if (exist == null || !exist.next()) 67 { 68 76 queries[2].execute(); 77 } 78 79 queries[3].setQueryParams("NODE_ID", 81 queryParams.get("CONTENT_NODE_ID")); 82 queries[3].execute(); 83 ResultSet rs = queries[3].fetchResultSet(); 84 Object lnr = null; 85 Object rnr = null; 86 if (rs != null && rs.next()) 87 { 88 lnr = rs.getObject(1); 89 rnr = rs.getObject(2); 90 } 91 92 queries[4].setQueryParams("LEFT_NR", lnr); 94 queries[4].setQueryParams("RIGHT_NR", rnr); 95 queries[4].execute(); 96 rs = queries[4].fetchResultSet(); 97 if (rs != null) 98 { 99 while (rs.next()) 101 { 102 queries[5].setQueryParams("NODE_ID", rs.getObject(1)); 103 queries[5].execute(); 104 } 105 } 106 107 128 queries[6].execute(); 129 130 131 147 148 queries[7].execute(); 149 addResult(queries[7].fetchResultSet()); 150 151 155 if (isNotOpen) 156 { 157 aTKDBConnection.commitTransaction(); } 159 160 } 161 catch(Throwable t) 162 { 163 TKDBManager.safeRollbackTransaction(t); 164 } 165 return hasResults(); 166 } 167 168 public void initQuery(Connection con) 169 { 170 super.initQuery(con, 171 isPrepared, paramOrder, types, setRelevants, null); 172 } 173 } 174 | Popular Tags |