KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > teamkonzept > webman > mainint > db > queries > oracle > TKDBPresRefInsert


1 /*
2  * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/webman/mainint/db/queries/oracle/Attic/TKDBPresRefInsert.java,v 1.7 2001/06/11 09:14:12 alex Exp $
3  *
4  */

5 /**
6  * Jedes Selectstatement erhaelt eine eigene Klasse
7  */

8 package com.teamkonzept.webman.mainint.db.queries.oracle;
9
10 import java.sql.*;
11
12 import com.teamkonzept.db.*;
13 import com.teamkonzept.webman.mainint.WebmanExceptionHandler;
14 import com.teamkonzept.webman.mainint.db.queries.presentation.*;
15 import com.teamkonzept.lib.TKNull;
16
17 /*
18  * TKDBPresRefInsert
19  * input "PRESENTATION_ID", "PRESENTATION_COMPONENT_IDX",
20  * "COMPONENT_TYPE", "INTEGRATION_TYPE",
21  * "INTEGRATION_NAME", "INTEGRATION_SHORTNAME", "SUB_PRESENTATION_ID",
22  *
23  * ouptut neu erzeugter DS aus PRESENTATION_REFERENCE
24  *
25  * erzeugt neuen Eintrag in PRESENTATION_COMPONENT + PRESENTATION_REFERENCE wenn
26  * PRESENTATION_COMPONENT_IDX nicht gesetzt wird.
27  * ist PRESENTATION_COMPONENT_IDX gesetzt dann wird nur ein neuer eintrag in
28  * PRESENTATION_REFERENCE erzeugt, in diesem Fall werden COMPONENT_TYPE, etc ignoriert und
29  * muessen nicht uebergeben werden
30  */

31 public class TKDBPresRefInsert extends TKExtendedPrepQuery
32 {
33
34     public final static boolean isPrepared = true;
35
36     public final static String JavaDoc[] order =
37     { "PRESENTATION_ID", "PRESENTATION_COMPONENT_IDX", "COMPONENT_TYPE",
38         "INTEGRATION_TYPE",
39     "INTEGRATION_NAME", "INTEGRATION_SHORTNAME", "SUB_PRESENTATION_ID"
40     };
41
42     public final static Object JavaDoc[][] types =
43     { {"INTEGRATION_NAME", new Integer JavaDoc(Types.VARCHAR)},
44     {"INTEGRATION_SHORTNAME", new Integer JavaDoc(Types.VARCHAR)}
45     };
46
47     public final static boolean[] setRelevants = { true };
48
49 /* public final static String sqlString =
50         "DECLARE @PIDX int " +
51         "DECLARE @PID int " +
52
53         "SELECT @PID = ? " +
54         "SELECT @PIDX = ? " +
55
56         "BEGIN TRANSACTION " +
57
58         "IF (@PIDX IS NULL) " +
59         "BEGIN " +
60             "SELECT " +
61             " @PIDX=ISNULL(MAX(PRESENTATION_COMPONENT_IDX)+1, 0) " +
62             "FROM " +
63             " PRESENTATION_COMPONENT " +
64             "WHERE " +
65             " PRESENTATION_ID = @PID " +
66
67             "INSERT INTO " +
68             " PRESENTATION_COMPONENT " +
69             " (PRESENTATION_ID, PRESENTATION_COMPONENT_IDX, " +
70             " COMPONENT_TYPE, INTEGRATION_TYPE, " +
71             " INTEGRATION_NAME, INTEGRATION_SHORTNAME) " +
72             "VALUES " +
73             " (@PID, @PIDX, ?, ?, ?, ?) " +
74         "END " +
75
76         "INSERT INTO " +
77         " PRESENTATION_REFERENCE " +
78         " (PRESENTATION_ID, PRESENTATION_COMPONENT_IDX, " +
79         " SUB_PRESENTATION_ID) " +
80         "VALUES " +
81         " (@PID, @PIDX, ?) " +
82
83         "SELECT " +
84         " * " +
85         "FROM " +
86         " PRESENTATION_REFERENCE " +
87         "WHERE " +
88         " PRESENTATION_ID = @PID " +
89         "AND " +
90         " PRESENTATION_COMPONENT_IDX = @PIDX " +
91
92         "COMMIT ";*/

93
94   protected static Class JavaDoc[] queryClasses =
95   {
96     SelectMaxPresentationComponent.class,
97     InsertPresentationComponent.class,
98     InsertPresentationReference.class,
99     SelectPresentationReference.class
100   };
101
102   public boolean execute() {
103     try {
104       init(queryClasses);
105
106           // SELECT @PID = ?
107
Integer JavaDoc presId = (Integer JavaDoc) queryParams.get("PRESENTATION_ID");
108       // SELECT @PIDX = ?
109
Object JavaDoc presComp = queryParams.get("PRESENTATION_COMPONENT_IDX");
110       boolean isNotOpen = aTKDBConnection.isAutoCommit();
111       if (isNotOpen) {
112          TKDBManager.beginTransaction();
113       }
114
115           // IF (@PIDX IS NULL)
116
int pidx = 0;
117       if (presComp == null || presComp instanceof TKNull) {
118
119         // SELECT @PIDX=ISNULL(MAX(PRESENTATION_COMPONENT_IDX)+1, 0) FROM PRESENTATION_COMPONENT WHERE PRESENTATION_ID = @PID
120
queries[0].setQueryParams("PRESENTATION_ID", presId);
121         queries[0].execute();
122         ResultSet rs = queries[0].fetchResultSet();
123         if (rs != null && rs.next()) {
124           pidx = rs.getInt(1) + 1;
125         }
126         
127         presComp = new Integer JavaDoc(pidx);
128         // INSERT INTO PRESENTATION_COMPONENT (PRESENTATION_ID, PRESENTATION_COMPONENT_IDX, COMPONENT_TYPE, INTEGRATION_TYPE, INTEGRATION_NAME, INTEGRATION_SHORTNAME) VALUES (@PID, @PIDX, ?, ?, ?, ?)
129
queries[1].setQueryParams("PRESENTATION_ID", presId);
130         queries[1].setQueryParams("PRESENTATION_COMPONENT_IDX", presComp);
131         queries[1].setQueryParams("COMPONENT_TYPE", queryParams.get("COMPONENT_TYPE"));
132         queries[1].setQueryParams("INTEGRATION_TYPE", queryParams.get("INTEGRATION_TYPE"));
133         queries[1].setQueryParams("INTEGRATION_NAME", queryParams.get("INTEGRATION_NAME"));
134         queries[1].setQueryParams("INTEGRATION_SHORTNAME", queryParams.get("INTEGRATION_SHORTNAME"));
135         queries[1].execute();
136       }
137       
138       // INSERT INTO PRESENTATION_REFERENCE (PRESENTATION_ID, PRESENTATION_COMPONENT_IDX, SUB_PRESENTATION_ID) VALUES (@PID, @PIDX, ?)
139
queries[2].setQueryParams("PRESENTATION_ID", presId);
140         queries[2].setQueryParams("PRESENTATION_COMPONENT_IDX", presComp);
141         queries[2].setQueryParams("SUB_PRESENTATION_ID", queryParams.get("SUB_PRESENTATION_ID"));
142         queries[2].execute();
143         
144       if (isNotOpen) {
145          TKDBManager.commitTransaction();
146       }
147       // SELECT * FROM PRESENTATION_REFERENCE WHERE PRESENTATION_ID = @PID AND PRESENTATION_COMPONENT_IDX = @PIDX
148
queries[3].setQueryParams("PRESENTATION_ID", presId);
149         queries[3].setQueryParams("PRESENTATION_COMPONENT_IDX", presComp);
150         queries[3].execute();
151       addResult(queries[3].fetchResultSet());
152
153     }
154     catch (Throwable JavaDoc sqle) {
155         TKDBManager.safeRollbackTransaction(sqle);
156     }
157     return hasResults();
158   }
159
160     public void initQuery(Connection con) {
161         super.initQuery(
162             con,
163             isPrepared,
164             order,
165             types,
166             setRelevants,
167             null );
168     }
169 }
170
Popular Tags