KickJava   Java API By Example, From Geeks To Geeks.

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


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

5 package com.teamkonzept.webman.mainint.db.queries;
6
7 import java.sql.*;
8
9 import com.teamkonzept.db.*;
10 import com.teamkonzept.webman.mainint.db.queries.content.*;
11 import com.teamkonzept.webman.mainint.WebmanExceptionHandler;
12 import com.teamkonzept.lib.TKNull;
13
14 /*
15  * TKDBDocContentUpdate
16  * Schreibt einen DS fuer einen Document_Content
17  *
18  * Input: Kompl. DS
19  * Output: none
20  */

21 public class TKDBDocContentUpdate extends TKExtendedPrepQuery
22 {
23
24     public final static boolean isPrepared = true;
25
26     public final static String JavaDoc[] paramOrder = {
27     "SELECTION_TYPE", "SELECTION_DATA",
28     "SITE_NODE_ID", "SITE_NODE_DOC_IDX",
29     "PRESENTATION_COMPONENT_IDX", "CONTENT_NODE_ID",
30     "SITE_NODE_ID", "SITE_NODE_DOC_IDX",
31     "PRESENTATION_COMPONENT_IDX"
32     };
33
34     public final static Object JavaDoc[][] types = {
35     {"SELECTION_TYPE", new Integer JavaDoc(Types.VARCHAR)},
36     {"SELECTION_DATA", new Integer JavaDoc(Types.LONGVARCHAR)}
37     };
38
39     public final static boolean[] setRelevants = { false };
40
41 /* public final static String sqlString =
42
43         "DECLARE @ST VARCHAR(80) " +
44         "DECLARE @SID INT " +
45         "DECLARE @OLDSID INT " +
46
47         "SELECT @ST = ? " +
48         "SELECT @SID = NULL " +
49         "SELECT @OLDSID = NULL " +
50
51         "BEGIN TRANSACTION " +
52
53         "IF ( @ST IS NOT NULL ) " +
54         "BEGIN " +
55             "SELECT " +
56             " @SID = ISNULL(MAX(SELECTION_ID) + 1,0) " +
57             "FROM " +
58             " CONTENT_SELECTION " +
59
60             "INSERT INTO "+
61             " CONTENT_SELECTION " +
62             " (SELECTION_ID, SELECTION_TYPE, SELECTION_DATA) " +
63             "VALUES " +
64             " (@SID, @ST, ?) " +
65         "END " +
66
67         "SELECT " +
68         " @OLDSID = SELECTION_ID " +
69         "FROM " +
70         " DOCUMENT_CONTENT " +
71         "WHERE " +
72         " SITE_NODE_ID = ? " +
73         "AND " +
74         " SITE_NODE_DOC_IDX = ? " +
75         "AND " +
76         " PRESENTATION_COMPONENT_IDX = ? " +
77
78         "UPDATE " +
79         " DOCUMENT_CONTENT " +
80         "SET " +
81         " CONTENT_NODE_ID = ?, " +
82         " SELECTION_ID = @SID " +
83         "WHERE " +
84         " SITE_NODE_ID = ? " +
85         "AND " +
86         " SITE_NODE_DOC_IDX = ? " +
87         "AND " +
88         " PRESENTATION_COMPONENT_IDX = ? " +
89
90         "IF (@OLDSID IS NOT NULL) " +
91         "BEGIN " +
92             "DELETE FROM " +
93             " CONTENT_SELECTION " +
94             "WHERE " +
95             " SELECTION_ID = @OLDSID " +
96         "END " +
97
98         "COMMIT TRANSACTION "; */

99
100     protected static Class JavaDoc[] queryClasses = {
101     SelectMaxContentSelection.class,
102     InsertContentSelection.class,
103     SelectDocumentContent.class,
104     UpdateDocumentContent.class,
105     DeleteFromContentSelection.class
106     };
107
108     public boolean execute()
109     {
110     try
111     {
112         init(queryClasses); // init query objects
113

114         Object JavaDoc st = queryParams.get("SELECTION_TYPE");
115
116         // BEGIN TRANSACTION
117
boolean isNotOpen = aTKDBConnection.isAutoCommit();
118         if (isNotOpen)
119         {
120         TKDBManager.beginTransaction(); // begin transaction
121
}
122         int sid = 0;
123         Integer JavaDoc selectionId = null;
124
125         // IF ( @ST IS NOT NULL )
126
if (st != null && !(st instanceof TKNull))
127         {
128         //if (!(st == null || st instanceof TKNull)) {
129
// SELECT @SID = ISNULL(MAX(SELECTION_ID) + 1,0) FROM CONTENT_SELECTION
130
queries[0].execute();
131         ResultSet rs = queries[0].fetchResultSet();
132         if (rs != null && rs.next())
133         {
134             sid = rs.getInt(1) + 1;
135         }
136         selectionId = new Integer JavaDoc(sid);
137
138         // INSERT INTO CONTENT_SELECTION (SELECTION_ID, SELECTION_TYPE, SELECTION_DATA) VALUES (@SID, @ST, ?)
139
queries[1].setQueryParams("SELECTION_ID", selectionId);
140         queries[1].setQueryParams("SELECTION_TYPE", st);
141         queries[1].setQueryParams("SELECTION_DATA",
142                       queryParams.get("SELECTION_DATA"));
143         queries[1].execute();
144
145         }
146         // END
147

148         // SELECT @OLDSID = SELECTION_ID FROM DOCUMENT_CONTENT WHERE SITE_NODE_ID = ? AND SITE_NODE_DOC_IDX = ? AND PRESENTATION_COMPONENT_IDX = ?
149
Object JavaDoc oldSelectionId = null;
150         queries[2].setQueryParams("SITE_NODE_ID",
151                       queryParams.get("SITE_NODE_ID"));
152         queries[2].setQueryParams("SITE_NODE_DOC_IDX",
153                       queryParams.get("SITE_NODE_DOC_IDX"));
154         queries[2].setQueryParams("PRESENTATION_COMPONENT_IDX",
155                       queryParams.
156                       get("PRESENTATION_COMPONENT_IDX"));
157         queries[2].execute(); // execute first query
158
ResultSet rs = queries[2].fetchResultSet();
159         if (rs != null && rs.next())
160         {
161         oldSelectionId = rs.getObject(1);
162         }
163
164         // UPDATE DOCUMENT_CONTENT SET CONTENT_NODE_ID = ?, SELECTION_ID = @SID WHERE SITE_NODE_ID = ? AND SITE_NODE_DOC_IDX = ? AND PRESENTATION_COMPONENT_IDX = ?
165
queries[3].setQueryParams("CONTENT_NODE_ID",
166                       queryParams.get("CONTENT_NODE_ID"));
167         queries[3].setQueryParams("SELECTION_ID", selectionId);
168         queries[3].setQueryParams("SITE_NODE_ID",
169                       queryParams.get("SITE_NODE_ID"));
170         queries[3].setQueryParams("SITE_NODE_DOC_IDX",
171                       queryParams.get("SITE_NODE_DOC_IDX"));
172         queries[3].setQueryParams("PRESENTATION_COMPONENT_IDX",
173                       queryParams.
174                       get("PRESENTATION_COMPONENT_IDX"));
175         queries[3].execute(); // ...and execute it
176

177         // IF (@OLDSID IS NOT NULL)
178
// DELETE FROM CONTENT_SELECTION WHERE SELECTION_ID = @OLDSID
179
// END
180
if (oldSelectionId != null && !(oldSelectionId instanceof TKNull))
181         {
182         queries[4].setQueryParams("SELECTION_ID", oldSelectionId);
183         queries[4].execute();
184         }
185
186         // COMMIT TRANSACTION
187
if (isNotOpen)
188         {
189         aTKDBConnection.commitTransaction(); // commit all changes
190
}
191
192     }
193     catch(Throwable JavaDoc t)
194     {
195         TKDBManager.safeRollbackTransaction(t);
196     }
197     return hasResults();
198     }
199
200     public void initQuery(Connection con)
201     {
202     super.initQuery(con,
203             isPrepared,
204             paramOrder, types, setRelevants, sqlString);
205     }
206 }
207
Popular Tags