1 5 8 package com.teamkonzept.webman.mainint.db.queries.oracle; 9 10 import java.sql.*; 11 12 import com.teamkonzept.db.*; 13 import com.teamkonzept.webman.mainint.WebmanExceptionHandler; 14 import com.teamkonzept.webman.mainint.db.queries.presentation.*; 15 import com.teamkonzept.lib.TKNull; 16 17 31 public class TKDBPresRefInsert extends TKExtendedPrepQuery 32 { 33 34 public final static boolean isPrepared = true; 35 36 public final static String [] order = 37 { "PRESENTATION_ID", "PRESENTATION_COMPONENT_IDX", "COMPONENT_TYPE", 38 "INTEGRATION_TYPE", 39 "INTEGRATION_NAME", "INTEGRATION_SHORTNAME", "SUB_PRESENTATION_ID" 40 }; 41 42 public final static Object [][] types = 43 { {"INTEGRATION_NAME", new Integer (Types.VARCHAR)}, 44 {"INTEGRATION_SHORTNAME", new Integer (Types.VARCHAR)} 45 }; 46 47 public final static boolean[] setRelevants = { true }; 48 49 93 94 protected static Class [] queryClasses = 95 { 96 SelectMaxPresentationComponent.class, 97 InsertPresentationComponent.class, 98 InsertPresentationReference.class, 99 SelectPresentationReference.class 100 }; 101 102 public boolean execute() { 103 try { 104 init(queryClasses); 105 106 Integer presId = (Integer ) queryParams.get("PRESENTATION_ID"); 108 Object presComp = queryParams.get("PRESENTATION_COMPONENT_IDX"); 110 boolean isNotOpen = aTKDBConnection.isAutoCommit(); 111 if (isNotOpen) { 112 TKDBManager.beginTransaction(); 113 } 114 115 int pidx = 0; 117 if (presComp == null || presComp instanceof TKNull) { 118 119 queries[0].setQueryParams("PRESENTATION_ID", presId); 121 queries[0].execute(); 122 ResultSet rs = queries[0].fetchResultSet(); 123 if (rs != null && rs.next()) { 124 pidx = rs.getInt(1) + 1; 125 } 126 127 presComp = new Integer (pidx); 128 queries[1].setQueryParams("PRESENTATION_ID", presId); 130 queries[1].setQueryParams("PRESENTATION_COMPONENT_IDX", presComp); 131 queries[1].setQueryParams("COMPONENT_TYPE", queryParams.get("COMPONENT_TYPE")); 132 queries[1].setQueryParams("INTEGRATION_TYPE", queryParams.get("INTEGRATION_TYPE")); 133 queries[1].setQueryParams("INTEGRATION_NAME", queryParams.get("INTEGRATION_NAME")); 134 queries[1].setQueryParams("INTEGRATION_SHORTNAME", queryParams.get("INTEGRATION_SHORTNAME")); 135 queries[1].execute(); 136 } 137 138 queries[2].setQueryParams("PRESENTATION_ID", presId); 140 queries[2].setQueryParams("PRESENTATION_COMPONENT_IDX", presComp); 141 queries[2].setQueryParams("SUB_PRESENTATION_ID", queryParams.get("SUB_PRESENTATION_ID")); 142 queries[2].execute(); 143 144 if (isNotOpen) { 145 TKDBManager.commitTransaction(); 146 } 147 queries[3].setQueryParams("PRESENTATION_ID", presId); 149 queries[3].setQueryParams("PRESENTATION_COMPONENT_IDX", presComp); 150 queries[3].execute(); 151 addResult(queries[3].fetchResultSet()); 152 153 } 154 catch (Throwable sqle) { 155 TKDBManager.safeRollbackTransaction(sqle); 156 } 157 return hasResults(); 158 } 159 160 public void initQuery(Connection con) { 161 super.initQuery( 162 con, 163 isPrepared, 164 order, 165 types, 166 setRelevants, 167 null ); 168 } 169 } 170 | Popular Tags |