1 package com.teamkonzept.field.db.queries.oracle; 2 3 import com.teamkonzept.db.*; 4 import com.teamkonzept.webman.mainint.db.queries.field.InsertEmptyClob; 5 import com.teamkonzept.webman.mainint.db.queries.field.SelectEmptyClob; 6 7 import java.sql.*; 8 9 import oracle.sql.CLOB; 10 11 import org.apache.log4j.Category; 12 13 public class TKDBContentValuePut extends TKExtendedPrepQuery { 14 15 private static Category cat = Category.getInstance(TKDBContentValuePut.class.getName()); 16 17 public final static boolean IS_PREPARED = 18 true; 19 20 public final static String [] PARAM_ORDER = 21 { "CONTENT_ID", "CONTENT_NODE_ID", "IDX", "VALUE", MEDIA_ID }; 22 23 public final static Object [][] PARAM_TYPES = 24 null; 25 26 public final static boolean[] SET_RELEVANTS = 27 { false }; 28 29 protected static Class [] queryClasses = { 30 InsertEmptyClob.class, SelectEmptyClob.class }; 33 34 public boolean execute() 35 { 36 try 37 { 38 init(queryClasses); 40 boolean isNotOpen = aTKDBConnection.isAutoCommit(); 41 if (isNotOpen) 42 { 43 TKDBManager.beginTransaction(); } 45 46 queries[0].setQueryParams("CONTENT_ID", queryParams.get("CONTENT_ID")); 49 queries[0].setQueryParams("CONTENT_NODE_ID", queryParams.get("CONTENT_NODE_ID")); 50 queries[0].setQueryParams("IDX", queryParams.get("IDX")); 51 queries[0].setQueryParams(MEDIA_ID, queryParams.get(MEDIA_ID)); 52 queries[0].execute(); 53 54 queries[1].setQueryParams("CONTENT_ID", queryParams.get("CONTENT_ID")); 56 queries[1].setQueryParams("CONTENT_NODE_ID", queryParams.get("CONTENT_NODE_ID")); 57 queries[1].setQueryParams("IDX", queryParams.get("IDX")); 58 queries[1].execute(); 59 ResultSet rs = queries[1].fetchResultSet(); 60 if (rs.next()) { 61 CLOB clob = (CLOB) rs.getClob(1); 62 String value = (String ) queryParams.get("VALUE"); 63 int written = clob.putString(1, value); 64 cat.debug(written + " chars written"); 65 } 66 67 if (isNotOpen) 69 { 70 aTKDBConnection.commitTransaction(); } 72 73 } 74 catch(Throwable t) 75 { 76 cat.error("Error while inserting clob data", t); 77 TKDBManager.safeRollbackTransaction(t); 78 } 79 return hasResults(); 80 } 81 82 public void initQuery(Connection con) { 83 super.initQuery( 84 con, 85 IS_PREPARED, 86 PARAM_ORDER, 87 PARAM_TYPES, 88 SET_RELEVANTS, 89 null); 90 } 91 } 92 | Popular Tags |