01: package de.webman.content.workflow.db.queries;
02:
03: import java.sql.*;
04:
05: import com.teamkonzept.db.*;
06: import com.teamkonzept.webman.mainint.WebmanExceptionHandler;
07: import de.webman.content.workflow.db.queries.SelectMaxVersionStatusFilter;
08: import de.webman.content.workflow.db.queries.InsertVersionStatusFilter;
09: import de.webman.content.workflow.db.queries.SelectVersionStatusFilter;
10:
11: /*
12: *
13: * erzeugt neuen Eintrag in VERSION_STATUS_FILTER
14: *
15: * @author
16: * @version
17: */
18: public class InsertFilter extends TKExtendedPrepQuery {
19:
20: public final static boolean ISPREPARED = true;
21: public final static String[] ORDER = { "FILTER_NAME", "FILTER_MODE" };
22: public final static Object[][] TYPES = null;
23: public final static boolean[] SETRELEVANTS = { true };
24:
25: protected static Class[] queryClasses = {
26: SelectMaxVersionStatusFilter.class,
27: InsertVersionStatusFilter.class,
28: SelectVersionStatusFilter.class };
29:
30: public boolean execute() {
31: try {
32: init(queryClasses);
33:
34: boolean isNotOpen = aTKDBConnection.isAutoCommit();
35: if (isNotOpen) {
36: TKDBManager.beginTransaction();
37: }
38:
39: // SELECT MAX(FILTER_ID) FROM VERSION_STATUS_FILTER
40: queries[0].execute();
41: int filter_id = 1;
42: ResultSet rs = queries[0].fetchResultSet();
43: if (rs != null && rs.next()) {
44: filter_id = rs.getInt(1) + 1;
45: }
46: Integer filterId = new Integer(filter_id);
47:
48: // INSERT INTO VERSION_STATUS_FILTER (FILTER_ID, FILTER_NAME, FILTER_MODE) VALUES (?, ?, ?)
49: queries[1].setQueryParams("FILTER_ID", filterId);
50: queries[1].setQueryParams("FILTER_NAME", queryParams
51: .get("FILTER_NAME"));
52: queries[1].setQueryParams("FILTER_MODE", queryParams
53: .get("FILTER_MODE"));
54: queries[1].execute();
55:
56: // SELECT * FROM VERSION_STATUS_FILTER WHERE FILTER_ID = ?
57: queries[2].setQueryParams("FILTER_ID", filterId);
58: queries[2].execute();
59: addResult(queries[2].fetchResultSet());
60:
61: if (isNotOpen) {
62: TKDBManager.commitTransaction();
63: }
64:
65: } catch (Throwable t) {
66: TKDBManager.safeRollbackTransaction(t);
67: }
68: return hasResults();
69: }
70:
71: public void initQuery(Connection con) {
72: super.initQuery(con, ISPREPARED, ORDER, TYPES, SETRELEVANTS,
73: null);
74: }
75: }
|