KickJava   Java API By Example, From Geeks To Geeks.

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


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

5 package com.teamkonzept.webman.mainint.db.queries.oracle;
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 import org.apache.log4j.Category;
15
16 /*
17  * TKDBDocContentPut
18  * Schreibt einen DS fuer einen Document_Content
19  *
20  * Input: Kompl. DS
21  * Output: none
22  */

23 public class TKDBDocContentPut extends TKExtendedPrepQuery
24 {
25
26     private final static Category cat = Category.getInstance(TKDBDocContentPut.class.getName());
27
28     public final static boolean isPrepared = true;
29
30     public final static String JavaDoc[] paramOrder = {
31     "SELECTION_TYPE", "SELECTION_DATA",
32     "SITE_NODE_ID", "SITE_NODE_DOC_IDX",
33     "PRESENTATION_COMPONENT_IDX", "CONTENT_NODE_ID"
34     };
35
36     public final static Object JavaDoc[][] types =
37     { {"SELECTION_TYPE", new Integer JavaDoc(Types.VARCHAR)} };
38
39     public final static boolean[] setRelevants = { false };
40
41 /* public final static String sqlString =
42         "DECLARE @ST VARCHAR(80) " +
43         "DECLARE @SID INT " +
44
45         "SELECT @ST = ? " +
46         "SELECT @SID = NULL " +
47
48         "BEGIN TRANSACTION " +
49
50         "IF ( @ST IS NOT NULL ) " +
51         "BEGIN " +
52             "SELECT " +
53             " @SID = ISNULL(MAX(SELECTION_ID) + 1,0) " +
54             "FROM " +
55             " CONTENT_SELECTION " +
56
57             "INSERT INTO "+
58             " CONTENT_SELECTION " +
59             " (SELECTION_ID, SELECTION_TYPE, SELECTION_DATA) " +
60             "VALUES " +
61             " (@SID, @ST, ?) " +
62         "END " +
63
64         "INSERT INTO " +
65         " DOCUMENT_CONTENT " +
66         " (SITE_NODE_ID, SITE_NODE_DOC_IDX, " +
67         " PRESENTATION_COMPONENT_IDX, CONTENT_NODE_ID, " +
68         " SELECTION_ID ) " +
69         "VALUES " +
70         "(?,?,?,?, @SID) " +
71
72         "COMMIT TRANSACTION "; */

73
74     protected static Class JavaDoc[] queryClasses = {
75     SelectMaxContentSelection.class,
76     InsertContentSelection.class,
77     InsertDocumentContent.class
78     };
79
80     public boolean execute()
81     {
82     try
83     {
84
85         init(queryClasses); // init query objects
86

87         Object JavaDoc st = queryParams.get("SELECTION_TYPE");
88
89         cat.debug("SELECTION_TYPE [st]=" + st);
90
91         // BEGIN TRANSACTION
92
boolean isNotOpen = aTKDBConnection.isAutoCommit();
93         if (isNotOpen)
94         {
95         TKDBManager.beginTransaction(); // begin transaction
96
}
97
98         Integer JavaDoc sid = null;
99         int max = 0;
100         // IF ( @ST IS NOT NULL )
101
if (st != null && !(st instanceof TKNull))
102         {
103             cat.debug("SELECTION_TYPE is NOT null");
104         // SELECT @SID = ISNULL(MAX(SELECTION_ID) + 1,0) FROM CONTENT_SELECTION
105
queries[0].execute();
106         ResultSet rs = queries[0].fetchResultSet();
107         if (rs != null && rs.next())
108         {
109             max = rs.getInt(1) + 1;
110         }
111
112         sid = new Integer JavaDoc(max);
113             cat.debug("SELECTION_ID [sid]=" + sid);
114
115         // INSERT INTO CONTENT_SELECTION (SELECTION_ID, SELECTION_TYPE, SELECTION_DATA) VALUES (@SID, @ST, ?)
116
// PARAMS: SELECTION_ID, SELECTION_TYPE (VARCHAR), SELECTION_DATA
117
queries[1].setQueryParams("SELECTION_ID", sid);
118         queries[1].setQueryParams("SELECTION_TYPE", st);
119         queries[1].setQueryParams("SELECTION_DATA",
120                       queryParams.get("SELECTION_DATA"));
121         queries[1].execute();
122         // END (of if)
123
}
124
125         // INSERT INTO DOCUMENT_CONTENT (SITE_NODE_ID, SITE_NODE_DOC_IDX, PRESENTATION_COMPONENT_IDX, CONTENT_NODE_ID, SELECTION_ID ) VALUES (?,?,?,?, @SID)
126
// PARAMS: SITE_NODE_ID, SITE_NODE_DOC_IDX, PRESENTATION_COMPONENT_IDX, CONTENT_NODE_ID, SELECTION_ID
127
queries[2].setQueryParams("SITE_NODE_ID",
128                       queryParams.get("SITE_NODE_ID"));
129         queries[2].setQueryParams("SITE_NODE_DOC_IDX",
130                       queryParams.get("SITE_NODE_DOC_IDX"));
131         queries[2].setQueryParams("PRESENTATION_COMPONENT_IDX",
132                       queryParams.
133                       get("PRESENTATION_COMPONENT_IDX"));
134         queries[2].setQueryParams("CONTENT_NODE_ID",
135                       queryParams.get("CONTENT_NODE_ID"));
136         queries[2].setQueryParams("SELECTION_ID", sid);
137         queries[2].execute();
138
139         // COMMIT TRANSACTION
140
if (isNotOpen)
141         {
142         aTKDBConnection.commitTransaction(); // commit all changes
143
}
144
145     }
146     catch(Throwable JavaDoc t)
147     {
148         TKDBManager.safeRollbackTransaction(t);
149     }
150     return hasResults();
151     }
152
153     public void initQuery(Connection con)
154     {
155     super.initQuery(con,
156             isPrepared,
157             paramOrder, types, setRelevants, sqlString);
158     }
159 }
160
Popular Tags