KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > teamkonzept > webman > mainint > db > queries > sybase > TKDBSiteTreeGetOpen


1 /*
2  * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/webman/mainint/db/queries/sybase/Attic/TKDBSiteTreeGetOpen.java,v 1.2 2001/08/15 12:50:09 markus Exp $
3  *
4  */

5 package com.teamkonzept.webman.mainint.db.queries.sybase;
6
7 import java.sql.*;
8
9 import com.teamkonzept.db.*;
10
11 /*
12  * TKDBSiteTreeGetOpen
13  * gibt eine teilweise geoeffneten Baum zurueck
14  * Input: NODE_ID des zu oefneten Knotens
15  * Output: alles und eine NODE_ID
16  * wenn die NODE_ID = SITE_NODE_ID dann ist dieser Knoten oeffenbar, aber geschlossen
17  * wenn die NODE_ID = NULL dann ist dieser ein Blatt
18  * wenn die NODE_ID = SITE_NODE_PARENT dann ist dieser Knoten oeffenbar und offen
19  */

20 public class TKDBSiteTreeGetOpen extends TKPrepQuery{
21
22     public final static boolean isPrepared =
23         true;
24     
25     public final static String JavaDoc[] paramOrder =
26         { "NODE_ID" };
27     public final static Object JavaDoc[][] paramTypes =
28         null;
29         
30     public final static boolean[] setRelevants =
31         { true };
32         
33     public final static String JavaDoc sqlString =
34         "DECLARE @N_ID int " +
35         "DECLARE @LNR int " +
36         "DECLARE @RNR int " +
37         
38         "SELECT @N_ID = ? " +
39         
40         "IF (@N_ID IS NULL) " +
41         "BEGIN " +
42             "SELECT " +
43             " @N_ID = SITE_NODE_ID " +
44             "FROM " +
45             " SITE_TREE " +
46             "WHERE " +
47             " SITE_NODE_PARENT = NULL " +
48         "END " +
49         
50         "SELECT " +
51         " @LNR = LEFT_NR, " +
52         " @RNR = RIGHT_NR " +
53         "FROM " +
54         " SITE_TREE " +
55         "WHERE " +
56         " SITE_NODE_ID = @N_ID " +
57         
58         "SELECT " +
59         " SITE_NODE_ID " +
60         "INTO " +
61         " #temp " +
62         "FROM " +
63         " SITE_TREE " +
64         "WHERE " +
65         " LEFT_NR <= @LNR " +
66         "AND " +
67         " RIGHT_NR >= @RNR " +
68
69         "CREATE TABLE " +
70         " #temp2 " +
71         " (SITE_NODE_ID int null, NODE_ID int null) " +
72         
73         "INSERT INTO " +
74         " #temp2 " +
75         "SELECT " +
76         " SITE_NODE_ID, SITE_NODE_ID " +
77         "FROM " +
78         " SITE_TREE " +
79         "WHERE " +
80         " SITE_NODE_PARENT IN " +
81             "( SELECT SITE_NODE_ID FROM #temp ) " +
82         "OR " +
83         " SITE_NODE_ID IN " +
84             "( SELECT SITE_NODE_ID FROM #temp ) " +
85          
86          "UPDATE " +
87          " #temp2 " +
88          "SET " +
89          " NODE_ID = CT.SITE_NODE_PARENT " +
90          "FROM " +
91          " #temp T, SITE_TREE CT " +
92          "WHERE " +
93          " CT.SITE_NODE_ID = #temp2.SITE_NODE_ID " +
94          "AND " +
95          " CT.SITE_NODE_ID = T.SITE_NODE_ID " +
96         
97          "UPDATE " +
98          " #temp2 " +
99          "SET " +
100          " NODE_ID = NULL " +
101          "FROM " +
102          " SITE_TREE CT " +
103          "WHERE " +
104          " CT.SITE_NODE_ID = #temp2.SITE_NODE_ID " +
105          "AND " +
106          " CT.SITE_NODE_TYPE < 3 " +
107         
108         "SELECT " +
109         " CT.*, T.NODE_ID " +
110         "FROM " +
111         " SITE_TREE CT, #temp2 T " +
112         "WHERE " +
113         " CT.SITE_NODE_ID = T.SITE_NODE_ID " +
114         "ORDER BY " +
115         " CT.LEFT_NR " +
116         
117         "DROP TABLE #temp " +
118         "DROP TABLE #temp2 ";
119     
120     public void initQuery(Connection con) {
121         super.initQuery(
122             con,
123             isPrepared,
124             paramOrder,
125             paramTypes,
126             setRelevants,
127             sqlString );
128     }
129 }
130
131
132
Popular Tags