1 package com.teamkonzept.webman.mainint.db.queries.postgresql; 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 final boolean ISPREPARED = true; 23 public static final String [] PARAMORDER = { "CONTENT_NODE_ID" }; 24 public static final Object [][] TYPES = null; 25 public static final 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, DropTempTableSiteNodeId.class, DropTempTableContentNodeId.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", queryParams.get("CONTENT_NODE_ID")); 81 queries[3].execute(); 82 ResultSet rs = queries[3].fetchResultSet(); 83 Object lnr = null; 84 Object rnr = null; 85 if (rs != null && rs.next()) 86 { 87 lnr = rs.getObject(1); 88 rnr = rs.getObject(2); 89 } 90 91 queries[4].setQueryParams("LEFT_NR", lnr); 93 queries[4].setQueryParams("RIGHT_NR", rnr); 94 queries[4].execute(); 95 rs = queries[4].fetchResultSet(); 96 if (rs != null) 97 { 98 while (rs.next()) 100 { 101 queries[5].setQueryParams("NODE_ID", rs.getObject(1)); 102 queries[5].execute(); 103 } 104 } 105 106 127 queries[6].execute(); 128 129 130 146 147 queries[7].execute(); 148 addResult(queries[7].fetchResultSet()); 149 150 queries[8].execute(); 152 queries[9].execute(); 153 154 if (isNotOpen) 155 { 156 aTKDBConnection.commitTransaction(); } 158 159 } 160 catch(Throwable t) 161 { 162 TKDBManager.safeRollbackTransaction(t); 163 } 164 return hasResults(); 165 } 166 167 public void initQuery(Connection con) 168 { 169 super.initQuery(con,ISPREPARED, PARAMORDER, TYPES, SETRELEVANTS, null); 170 } 171 } 172 | Popular Tags |