1 package com.teamkonzept.webman.mainint.db.queries; 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 13 public class TKContentInstanceNew extends TKExtendedPrepQuery 14 { 15 16 public final static boolean ISPREPARED = true; 17 18 public final static String [] PARAMORDER = 19 { "CONTENT_NODE_ID", "INST_NAME" }; 20 21 public final static Object [][] TYPES = 22 { {"INST_NAME", new Integer (Types.VARCHAR)} }; 23 24 public final static boolean[] SETRELEVANTS = { true }; 25 26 protected static Class [] queryClasses = { 27 SelectMaxFromContentInstance.class, 28 InsertContentInstance.class, 29 SelectAllContentInstance.class 30 }; 31 32 public boolean execute() 33 { 34 try 35 { 36 init(queryClasses); 38 Integer contentNodeId = 39 (Integer ) queryParams.get("CONTENT_NODE_ID"); 40 String instanceName = (String ) queryParams.get("INST_NAME"); 41 42 boolean isNotOpen = aTKDBConnection.isAutoCommit(); 43 if (isNotOpen) 44 { 45 TKDBManager.beginTransaction(); 46 } 47 48 int inst_id = 1; 49 queries[0].execute(); 51 ResultSet rs = queries[0].fetchResultSet(); 52 if (rs != null && rs.next()) 53 { 54 inst_id = rs.getInt(1) + 1; 55 } 56 Integer instanceId = new Integer (inst_id); 57 58 queries[1].setQueryParams("N_ID", contentNodeId); 62 queries[1].setQueryParams("INST_ID", instanceId); 63 queries[1].setQueryParams("INST_NAME", instanceName); 64 queries[1].execute(); 65 66 if (isNotOpen) 67 { 68 aTKDBConnection.commitTransaction(); } 70 71 queries[2].setQueryParams("INST_ID", instanceId); 74 queries[2].execute(); 75 addResult(queries[2].fetchResultSet()); 76 77 } 78 catch(Throwable t) 79 { 80 TKDBManager.safeRollbackTransaction(t); 81 } 82 return hasResults(); 83 } 84 85 public void initQuery(Connection con) 86 { 87 super.initQuery(con, 88 ISPREPARED, PARAMORDER, TYPES, SETRELEVANTS, null); 89 } 90 } 91 | Popular Tags |