1 package com.teamkonzept.webman.mainint.db.queries.oracle; 2 3 import com.teamkonzept.db.*; 4 import java.sql.*; 5 import com.teamkonzept.webman.mainint.WebmanExceptionHandler; 6 import com.teamkonzept.webman.mainint.db.queries.content.*; 7 8 public class TKContentInstanceNew extends TKExtendedPrepQuery 9 { 10 11 public final static boolean isPrepared = true; 12 13 public final static String [] paramOrder = 14 { "CONTENT_NODE_ID", "INST_NAME" }; 15 16 public final static Object [][] types = 17 { {"INST_NAME", new Integer (Types.VARCHAR)} }; 18 19 public final static boolean[] setRelevants = { true }; 20 21 39 40 protected static Class [] queryClasses = { 41 SelectMaxFromContentInstance.class, 42 InsertContentInstance.class, 43 SelectAllContentInstance.class 44 }; 45 46 public boolean execute() 47 { 48 try 49 { 50 init(queryClasses); 52 Integer contentNodeId = 53 (Integer ) queryParams.get("CONTENT_NODE_ID"); 54 String instanceName = (String ) queryParams.get("INST_NAME"); 55 56 boolean isNotOpen = aTKDBConnection.isAutoCommit(); 57 if (isNotOpen) 58 { 59 TKDBManager.beginTransaction(); 60 } 61 62 int inst_id = 1; 63 queries[0].execute(); 65 ResultSet rs = queries[0].fetchResultSet(); 66 if (rs != null && rs.next()) 67 { 68 inst_id = rs.getInt(1) + 1; 69 } 70 Integer instanceId = new Integer (inst_id); 71 72 queries[1].setQueryParams("N_ID", contentNodeId); 76 queries[1].setQueryParams("INST_ID", instanceId); 77 queries[1].setQueryParams("INST_NAME", instanceName); 78 queries[1].execute(); 79 80 if (isNotOpen) 81 { 82 aTKDBConnection.commitTransaction(); } 84 85 queries[2].setQueryParams("INST_ID", instanceId); 88 queries[2].execute(); 89 addResult(queries[2].fetchResultSet()); 90 91 } 92 catch(Throwable t) 93 { 94 TKDBManager.safeRollbackTransaction(t); 95 } 96 return hasResults(); 97 } 98 99 public void initQuery(Connection con) 100 { 101 super.initQuery(con, 102 isPrepared, paramOrder, types, setRelevants, null); 103 } 104 } 105 | Popular Tags |