KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > teamkonzept > webman > mainint > db > queries > TKDBPresContInsert


1 /*
2  * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/webman/mainint/db/queries/Attic/TKDBPresContInsert.java,v 1.6 2001/08/15 13:15:40 markus Exp $
3  *
4  */

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

8 package com.teamkonzept.webman.mainint.db.queries;
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
16 /*
17  * TKDBPresContInsert
18  * input "PRESENTATION_ID", "COMPONENT_TYPE", "INTEGRATION_TYPE",
19  * "INTEGRATION_NAME", "INTEGRATION_SHORTNAME", "FORM_ID",
20  *
21  * ouptut neu erzeugter DS aus PRESENTATION_CONTENT
22  *
23  * erzeugt neuen Eintrag in PRESENTATION_COMPONENT + PRESENTATION_CONTENT
24  */

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

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