1 package com.teamkonzept.webman.mainint.db.queries.postgresql; 2 import java.sql.*; 3 import com.teamkonzept.db.*; 4 import com.teamkonzept.webman.mainint.db.queries.content.*; 5 import com.teamkonzept.webman.mainint.db.queries.CheckTableExistence; 6 import com.teamkonzept.webman.mainint.WebmanExceptionHandler; 7 8 16 public class TKDBContentTreeDeleteDependentDC extends TKExtendedPrepQuery 17 { 18 public final static boolean ISPREPARED = true; 19 20 public final static String [] PARAMORDER = { "CONTENT_NODE_ID" }; 21 22 public final static Object [][] TYPES = null; 23 24 public final static boolean[] SETRELEVANTS = { false }; 25 26 27 protected static Class [] queryClasses = { 28 CheckTableExistence.class, CreateTempTableContentNodeId.class, SelectLeftRightNrFromContentTree.class, InsertIntoTempTableContentNodeId.class, DeleteFromContentSelection2.class, DeleteFromDocumentContent2.class, DropTempTableContentNodeId.class }; 36 37 public boolean execute() 38 { 39 try 40 { 41 42 init(queryClasses); 44 Object contentNodeId = queryParams.get("CONTENT_NODE_ID"); 45 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[6].execute(); 61 } 62 queries[1].execute(); 63 64 65 queries[2].setQueryParams("NODE_ID", contentNodeId); 71 queries[2].execute(); 72 ResultSet rs2 = queries[2].fetchResultSet(); 73 Object leftNr = null; 74 Object rightNr = null; 75 if (rs2 != null && rs2.next()) 76 { 77 leftNr = rs2.getObject(1); 78 rightNr = rs2.getObject(2); 79 } 80 81 82 queries[3].setQueryParams("LEFT_NR", leftNr); 88 queries[3].setQueryParams("RIGHT_NR", rightNr); 89 queries[3].execute(); 90 91 92 queries[4].execute(); 97 98 99 queries[5].execute(); 104 105 queries[6].execute(); 107 108 if (isNotOpen) 110 { 111 aTKDBConnection.commitTransaction(); } 113 114 } 115 catch(Throwable t) 116 { 117 TKDBManager.safeRollbackTransaction(t); 118 } 119 return hasResults(); 120 } 121 122 public void initQuery(Connection con) 123 { 124 super.initQuery(con, 125 ISPREPARED, PARAMORDER, TYPES, SETRELEVANTS, null); 126 } 127 } 128 | Popular Tags |