KickJava   Java API By Example, From Geeks To Geeks.

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


1 /*
2  * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/webman/mainint/db/queries/sybase/Attic/TKDBSiteTreeInsertNode.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  * TKDBSiteTreeInsertNode
13  * Fuegt einen neuen Knoten ueber/unterhalb eines Nodes ein
14  * Input: NODE_ID (Knoten des Parents ) und die neuen Werte
15  * "SITE_NODE_TYPE, SITE_NODE_NAME, SITE_NODE_SHORTNAME "
16  * Output: kompletter Datensatz (des neue erzeugtes DS)
17  */

18 public class TKDBSiteTreeInsertNode extends TKPrepQuery{
19
20     public final static boolean isPrepared =
21         true;
22     
23     public final static String JavaDoc[] paramOrder =
24         { "NODE_ID" ,"SELECTION_TYPE" ,"SELECTION_DATA",
25           "SITE_NODE_TYPE", "SITE_NODE_NAME", "SITE_NODE_SHORTNAME",
26           "PG_CONTENT_NODE"
27         };
28     
29     public final static Object JavaDoc[][] paramTypes =
30         {
31             { "SITE_NODE_NAME", new Integer JavaDoc(Types.VARCHAR) },
32             { "SITE_NODE_SHORTNAME", new Integer JavaDoc(Types.VARCHAR) },
33             { "SELECTION_DATA", new Integer JavaDoc(Types.VARCHAR) },
34             { "SELECTION_TYPE", new Integer JavaDoc(Types.VARCHAR) },
35         };
36         
37     public final static boolean[] setRelevants =
38         { true };
39         
40     public final static String JavaDoc sqlString =
41         "DECLARE @PR_NR INT " +
42         "DECLARE @ST VARCHAR(80) " +
43         "DECLARE @SID INT " +
44         "DECLARE @OLDID INT " +
45         "DECLARE @ID INT " +
46
47         "SELECT @OLDID = ? " +
48         "SELECT @ST = ? " +
49         "SELECT @SID = 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         " @PR_NR=RIGHT_NR " +
69         "FROM " +
70         " SITE_TREE " +
71         "WHERE " +
72         " SITE_NODE_ID = @OLDID " +
73         
74         "UPDATE " +
75         " SITE_TREE " +
76         "SET " +
77         " RIGHT_NR = RIGHT_NR + 2 " +
78         "WHERE " +
79         " RIGHT_NR >= @PR_NR " +
80         
81         "UPDATE " +
82         " SITE_TREE " +
83         "SET " +
84         " LEFT_NR = LEFT_NR + 2 " +
85         "WHERE " +
86         " LEFT_NR > @PR_NR " +
87         
88         "SELECT " +
89         " @ID = MAX(SITE_NODE_ID) + 1 " +
90         "FROM " +
91         " SITE_TREE " +
92         
93         "INSERT INTO " +
94         "SITE_TREE " +
95         " (SITE_NODE_ID, SITE_NODE_PARENT, " +
96         " SITE_NODE_TYPE, SITE_NODE_NAME, SITE_NODE_SHORTNAME, " +
97         " LEFT_NR, RIGHT_NR, " +
98         " PG_CONTENT_NODE, PG_SELECTION_ID) " +
99         "VALUES " +
100         " (@ID, @OLDID, ?, ?, ?, @PR_NR, @PR_NR + 1, ?, @SID) " +
101         
102         "COMMIT TRANSACTION " +
103         
104         "SELECT " +
105         " * " +
106         "FROM " +
107         " SITE_TREE " +
108         "WHERE " +
109         " SITE_NODE_ID = @ID ";
110         
111     public void initQuery(Connection con) {
112         super.initQuery(
113             con,
114             isPrepared,
115             paramOrder,
116             paramTypes,
117             setRelevants,
118             sqlString );
119     }
120 }
121
122
Popular Tags