1 5 package com.teamkonzept.webman.mainint.db.queries; 6 7 import java.sql.*; 8 9 import com.teamkonzept.db.*; 10 import com.teamkonzept.webman.mainint.db.queries.content.*; 11 import com.teamkonzept.webman.mainint.WebmanExceptionHandler; 12 import com.teamkonzept.lib.TKNull; 13 14 21 public class TKDBDocContentUpdate extends TKExtendedPrepQuery 22 { 23 24 public final static boolean isPrepared = true; 25 26 public final static String [] paramOrder = { 27 "SELECTION_TYPE", "SELECTION_DATA", 28 "SITE_NODE_ID", "SITE_NODE_DOC_IDX", 29 "PRESENTATION_COMPONENT_IDX", "CONTENT_NODE_ID", 30 "SITE_NODE_ID", "SITE_NODE_DOC_IDX", 31 "PRESENTATION_COMPONENT_IDX" 32 }; 33 34 public final static Object [][] types = { 35 {"SELECTION_TYPE", new Integer (Types.VARCHAR)}, 36 {"SELECTION_DATA", new Integer (Types.LONGVARCHAR)} 37 }; 38 39 public final static boolean[] setRelevants = { false }; 40 41 99 100 protected static Class [] queryClasses = { 101 SelectMaxContentSelection.class, 102 InsertContentSelection.class, 103 SelectDocumentContent.class, 104 UpdateDocumentContent.class, 105 DeleteFromContentSelection.class 106 }; 107 108 public boolean execute() 109 { 110 try 111 { 112 init(queryClasses); 114 Object st = queryParams.get("SELECTION_TYPE"); 115 116 boolean isNotOpen = aTKDBConnection.isAutoCommit(); 118 if (isNotOpen) 119 { 120 TKDBManager.beginTransaction(); } 122 int sid = 0; 123 Integer selectionId = null; 124 125 if (st != null && !(st instanceof TKNull)) 127 { 128 queries[0].execute(); 131 ResultSet rs = queries[0].fetchResultSet(); 132 if (rs != null && rs.next()) 133 { 134 sid = rs.getInt(1) + 1; 135 } 136 selectionId = new Integer (sid); 137 138 queries[1].setQueryParams("SELECTION_ID", selectionId); 140 queries[1].setQueryParams("SELECTION_TYPE", st); 141 queries[1].setQueryParams("SELECTION_DATA", 142 queryParams.get("SELECTION_DATA")); 143 queries[1].execute(); 144 145 } 146 148 Object oldSelectionId = null; 150 queries[2].setQueryParams("SITE_NODE_ID", 151 queryParams.get("SITE_NODE_ID")); 152 queries[2].setQueryParams("SITE_NODE_DOC_IDX", 153 queryParams.get("SITE_NODE_DOC_IDX")); 154 queries[2].setQueryParams("PRESENTATION_COMPONENT_IDX", 155 queryParams. 156 get("PRESENTATION_COMPONENT_IDX")); 157 queries[2].execute(); ResultSet rs = queries[2].fetchResultSet(); 159 if (rs != null && rs.next()) 160 { 161 oldSelectionId = rs.getObject(1); 162 } 163 164 queries[3].setQueryParams("CONTENT_NODE_ID", 166 queryParams.get("CONTENT_NODE_ID")); 167 queries[3].setQueryParams("SELECTION_ID", selectionId); 168 queries[3].setQueryParams("SITE_NODE_ID", 169 queryParams.get("SITE_NODE_ID")); 170 queries[3].setQueryParams("SITE_NODE_DOC_IDX", 171 queryParams.get("SITE_NODE_DOC_IDX")); 172 queries[3].setQueryParams("PRESENTATION_COMPONENT_IDX", 173 queryParams. 174 get("PRESENTATION_COMPONENT_IDX")); 175 queries[3].execute(); 177 if (oldSelectionId != null && !(oldSelectionId instanceof TKNull)) 181 { 182 queries[4].setQueryParams("SELECTION_ID", oldSelectionId); 183 queries[4].execute(); 184 } 185 186 if (isNotOpen) 188 { 189 aTKDBConnection.commitTransaction(); } 191 192 } 193 catch(Throwable t) 194 { 195 TKDBManager.safeRollbackTransaction(t); 196 } 197 return hasResults(); 198 } 199 200 public void initQuery(Connection con) 201 { 202 super.initQuery(con, 203 isPrepared, 204 paramOrder, types, setRelevants, sqlString); 205 } 206 } 207 | Popular Tags |