KickJava   Java API By Example, From Geeks To Geeks.

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


1 package com.teamkonzept.webman.mainint.db.queries.oracle;
2
3 import com.teamkonzept.db.*;
4 import java.sql.*;
5 import com.teamkonzept.webman.mainint.db.queries.content.*;
6 import com.teamkonzept.webman.mainint.WebmanExceptionHandler;
7
8 /*
9  * TKDBContentTreeDependentST
10  * Liefert alle SITE_NODE_ID 's die im CONTENT_TREE zu C_NODE_ID auf
11  * SITE_TREE ref. Christian diese Liste bitte durchgehen und jeden Node einzeln
12  * loeschen
13  * Input: CONTENT_NODE_ID
14  * Output: liste SITE_NODE_ID
15  */

16 public class TKDBContentTreeDependentST extends TKExtendedPrepQuery
17 {
18
19     public final static boolean isPrepared = true;
20
21     public final static String JavaDoc[] paramOrder = { "CONTENT_NODE_ID" };
22
23     public final static Object JavaDoc[][] types = null;
24
25     public final static boolean[] setRelevants = { true };
26
27 /* public final static String sqlString =
28         "DECLARE @L_NR INT " +
29         "DECLARE @R_NR INT " +
30
31         "SELECT " +
32         " @L_NR = LEFT_NR, @R_NR = RIGHT_NR " +
33         "FROM " +
34         " CONTENT_TREE " +
35         "WHERE " +
36         " CONTENT_NODE_ID = ? " +
37
38         "SELECT DISTINCT " +
39         " ST.SITE_NODE_ID " +
40         "FROM " +
41         " SITE_TREE ST, CONTENT_TREE CT " +
42         "WHERE " +
43         " ST.PG_CONTENT_NODE = CT.CONTENT_NODE_ID " +
44         "AND " +
45         " CT.LEFT_NR >= @L_NR " +
46         "AND " +
47         " CT.RIGHT_NR <= @R_NR "; */

48
49     protected static Class JavaDoc[] queryClasses = {
50     SelectLeftRightNrFromContentTree.class,
51     SelectDistinctFromSiteTreeContentTree.class
52     };
53
54     public boolean execute()
55     {
56     try
57     {
58
59         init(queryClasses); // init query objects
60

61         Object JavaDoc lnr = null;
62         Object JavaDoc rnr = null;
63         // SELECT @L_NR = LEFT_NR, @R_NR = RIGHT_NR FROM CONTENT_TREE WHERE CONTENT_NODE_ID = ?
64

65          queries[0].setQueryParams("NODE_ID", queryParams.get("CONTENT_NODE_ID"));
66           queries[0].execute(); // execute first query
67
ResultSet rs = queries[0].fetchResultSet();
68         if (rs != null && rs.next())
69         {
70         lnr = rs.getObject(1);
71         rnr = rs.getObject(2);
72         }
73
74         // SELECT DISTINCT ST.SITE_NODE_ID FROM SITE_TREE ST, CONTENT_TREE CT WHERE ST.PG_CONTENT_NODE = CT.CONTENT_NODE_ID AND CT.LEFT_NR >= @L_NR AND CT.RIGHT_NR <= @R_NR
75
queries[1].setQueryParams("LEFT_NR", lnr);
76           queries[1].setQueryParams("RIGHT_NR", rnr);
77           queries[1].execute();
78           addResult(queries[1].fetchResultSet()); // store result for later use
79
}
80     catch(Throwable JavaDoc t)
81     {
82         TKDBManager.safeRollbackTransaction(t);
83     }
84     return hasResults();
85     }
86
87     public void initQuery(Connection con)
88     {
89     super.initQuery(con,
90             isPrepared, paramOrder, types, setRelevants, null);
91     }
92 }
93
Popular Tags