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.SelectMaxContentVersion; 7 import com.teamkonzept.webman.mainint.db.queries.content.SelectMaxContentVersionWhere; 8 import com.teamkonzept.webman.mainint.db.queries.content.InsertContentVersion; 9 import com.teamkonzept.webman.mainint.db.queries.content.SelectContentVersionContentInstance; 10 11 public class TKDBContentNewVersion extends TKExtendedPrepQuery 12 { 13 14 public final static boolean ISPREPARED = true; 15 16 public final static String [] PARAMORDER = { 17 "INSTANCE_ID", "STATUS_ID", "VERS_INFO", "VERS_AUTHOR" 18 }; 19 20 public final static Object [][] TYPES = 21 { {"VERS_INFO", new Integer (Types.VARCHAR)}, 22 {"VERS_AUTHOR", new Integer (Types.VARCHAR)}, 23 }; 24 25 public final static boolean[] SETRELEVANTS = { false }; 26 27 protected static Class [] queryClasses = { 28 SelectMaxContentVersion.class, SelectMaxContentVersionWhere.class, InsertContentVersion.class, SelectContentVersionContentInstance.class }; 33 34 public boolean execute() 35 { 36 try 37 { 38 init(queryClasses); 40 Integer instIdObj = (Integer ) queryParams.get("INSTANCE_ID"); 42 43 boolean isNotOpen = aTKDBConnection.isAutoCommit(); 44 if (isNotOpen) 45 { 46 TKDBManager.beginTransaction(); 47 } 48 49 int vers_id = 1; 50 queries[0].execute(); 52 ResultSet rs = queries[0].fetchResultSet(); 53 if (rs != null && rs.next()) 54 { 55 vers_id = rs.getInt(1) + 1; 56 } 57 58 Object contIdObj = null; 60 queries[1].setQueryParams("INSTANCE_ID", instIdObj); 63 queries[1].execute(); 64 rs = queries[1].fetchResultSet(); 65 if (rs != null && rs.next()) 66 { 67 contIdObj = rs.getObject(1); 68 } 69 70 queries[2].setQueryParams("VERSION_ID", new Integer (vers_id)); 74 queries[2].setQueryParams("INSTANCE_ID", instIdObj); 75 queries[2].setQueryParams("CONTENT_ID", contIdObj); 76 queries[2].setQueryParams("STATUS_ID", 77 queryParams.get("STATUS_ID")); 78 queries[2].setQueryParams("DATE", 79 new java.sql.Timestamp (System. 80 currentTimeMillis 81 ())); 82 queries[2].setQueryParams("VERS_INFO", 83 queryParams.get("VERS_INFO")); 84 queries[2].setQueryParams("VERS_AUTHOR", 85 queryParams.get("VERS_AUTHOR")); 86 queries[2].execute(); 87 88 if (isNotOpen) 89 { 90 aTKDBConnection.commitTransaction(); } 92 93 queries[3].setQueryParams("VERSION_ID", new Integer (vers_id)); 97 queries[3].setQueryParams("INSTANCE_ID", instIdObj); 98 queries[3].execute(); 99 addResult(queries[3].fetchResultSet()); 100 101 } 102 catch(Throwable t) 103 { 104 TKDBManager.safeRollbackTransaction(t); 105 } 106 return hasResults(); 107 } 108 109 public void initQuery(Connection con) 110 { 111 super.initQuery(con, 112 ISPREPARED, PARAMORDER, TYPES, SETRELEVANTS, null); 113 } 114 } 115 | Popular Tags |