1 package de.webman.content.db.queries; 2 3 import com.teamkonzept.db.*; 4 import java.sql.*; 5 6 import de.webman.content.db.queries.SelectNextIdFromContentAttribute; 7 import de.webman.content.db.queries.InsertContentAttribute; 8 import de.webman.content.db.queries.InsertContentAttributeValue; 9 import de.webman.content.db.queries.SelectAttributeContentAttribute; 10 11 24 public class TKDBContentAttributePut extends TKExtendedPrepQuery { 25 26 public final static boolean ISPREPARED = true; 27 public final static String [] PARAMORDER = 28 { "CONTENT_ID", "ATTRIBUTE_ID", "STR_VALUE", "INT_VALUE", "DATE_VALUE" }; 29 30 public final static Object [][] PARAMTYPES = 31 { 32 {"CONTENT_ID", new Integer (Types.INTEGER)}, 33 {"ATTRIBUTE_ID", new Integer (Types.INTEGER)}, 34 {"STR_VALUE", new Integer (Types.VARCHAR)}, 35 {"INT_VALUE", new Integer (Types.INTEGER)}, 36 {"DATE_VALUE", new Integer (Types.TIMESTAMP)} }; 37 38 public final static boolean[] SETRELEVANTS = { true }; 39 40 63 64 protected static Class [] queryClasses = { 65 SelectNextIdFromContentAttribute.class, InsertContentAttribute.class, InsertContentAttributeValue.class, SelectAttributeContentAttribute.class }; 70 71 public boolean execute() 72 { 73 try 74 { 75 76 init(queryClasses); 78 boolean isNotOpen = aTKDBConnection.isAutoCommit(); 80 if (isNotOpen) 81 { 82 TKDBManager.beginTransaction(); } 84 85 Integer valueId = null; 86 int id = 1; 87 88 queries[0].execute(); 90 ResultSet rs = queries[0].fetchResultSet(); 91 if (rs != null && rs.next()) 92 { 93 id = rs.getInt(1); 94 } 95 valueId = new Integer (id); 96 queries[1].setQueryParams("VALUE_ID", valueId); 98 queries[1].setQueryParams("ATTRIBUTE_ID", queryParams.get("ATTRIBUTE_ID")); 99 queries[1].setQueryParams("STR_VALUE", queryParams.get("STR_VALUE")); 100 queries[1].setQueryParams("INT_VALUE", queryParams.get("INT_VALUE")); 101 queries[1].setQueryParams("DATE_VALUE", queryParams.get("DATE_VALUE")); 102 queries[1].execute(); 103 queries[2].setQueryParams("CONTENT_ID", queryParams.get("CONTENT_ID")); 105 queries[2].setQueryParams("VALUE_ID", valueId); 106 queries[2].execute(); 107 queries[3].setQueryParams("CONTENT_ID", queryParams.get("CONTENT_ID")); 109 queries[3].setQueryParams("VALUE_ID", valueId); 110 queries[3].execute(); 111 addResult(queries[3].fetchResultSet()); 112 113 if (isNotOpen) 115 { 116 aTKDBConnection.commitTransaction(); } 118 119 } 120 catch(Throwable t) 121 { 122 TKDBManager.safeRollbackTransaction(t); 123 } 124 return hasResults(); 125 } 126 public void initQuery(Connection con) { 127 super.initQuery( 128 con, 129 ISPREPARED, 130 PARAMORDER, 131 PARAMTYPES, 132 SETRELEVANTS, 133 null ); 134 } 135 } 136 | Popular Tags |