KickJava   Java API By Example, From Geeks To Geeks.

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


1 package com.teamkonzept.webman.mainint.db.queries.sybase;
2
3 import com.teamkonzept.db.*;
4 import java.sql.*;
5
6 /*
7  * TKDBContentTreeInsertNode
8  * Fuegt einen neuen Knoten unterhalb eines Parent Nodes ein
9  * Input: NODE_ID (Knoten des Parents ) und die neuen Werte
10  * "CONTENT_NODE_NAME", "CONTENT_NODE_TYPE", "CONTENT_FORM"
11  * Output: der neu erzeugte Datensatz
12  */

13 public class TKDBContentTreeInsertNode extends TKPrepQuery {
14
15     public final static boolean isPrepared =
16         true;
17     
18     public final static String JavaDoc[] paramOrder =
19         { "NODE_ID" ,
20           "CONTENT_NODE_NAME", "CONTENT_NODE_SHORTNAME",
21           "CONTENT_NODE_TYPE", "CONTENT_FORM",
22           "TREE_ID", "PROTOTYPE_ID"
23         };
24     
25     public final static Object JavaDoc[][] paramTypes =
26         {{ "CONTENT_NODE_NAME", new Integer JavaDoc(Types.VARCHAR) },
27          { "CONTENT_NODE_SHORTNAME", new Integer JavaDoc(Types.VARCHAR) }};
28         
29     public final static boolean[] setRelevants =
30         { true };
31         
32     public final static String JavaDoc sqlString =
33         "DECLARE @PR_NR INT " +
34         "DECLARE @N_ID INT " +
35         "DECLARE @ID INT " +
36         
37         "BEGIN TRANSACTION " +
38          
39         "SELECT @N_ID = ? " +
40          
41         "SELECT " +
42         " @PR_NR=RIGHT_NR " +
43         "FROM " +
44         " CONTENT_TREE " +
45         "WHERE " +
46         " CONTENT_NODE_ID = @N_ID " +
47         
48         "UPDATE " +
49         " CONTENT_TREE " +
50         "SET " +
51         " RIGHT_NR = RIGHT_NR + 2 " +
52         "WHERE " +
53         " RIGHT_NR >= @PR_NR " +
54         
55         "UPDATE " +
56         " CONTENT_TREE " +
57         "SET " +
58         " LEFT_NR = LEFT_NR + 2 " +
59         "WHERE " +
60         " LEFT_NR > @PR_NR " +
61         
62         "SELECT " +
63         " @ID = MAX(CONTENT_NODE_ID) + 1 " +
64         "FROM " +
65         " CONTENT_TREE " +
66         
67         "INSERT INTO " +
68         "CONTENT_TREE " +
69         " (CONTENT_NODE_ID, CONTENT_NODE_NAME, CONTENT_NODE_SHORTNAME, " +
70         " CONTENT_NODE_TYPE, LEFT_NR, RIGHT_NR, " +
71         " CONTENT_FORM, CONTENT_NODE_PARENT, TREE_ID, PROTOTYPE_ID) " +
72         "VALUES " +
73         " (@ID, ?, ?, ?, @PR_NR, @PR_NR + 1, ?, @N_ID, ?, ?) " +
74         
75         "COMMIT TRANSACTION " +
76         
77         "SELECT " +
78         " CONTENT_NODE_ID, CONTENT_NODE_NAME, CONTENT_NODE_SHORTNAME, " +
79         " CONTENT_NODE_TYPE, LEFT_NR, RIGHT_NR, " +
80         " CONTENT_FORM " +
81         "FROM " +
82         " CONTENT_TREE " +
83         "WHERE " +
84         " CONTENT_NODE_ID = @ID ";
85         
86     public void initQuery(Connection con) {
87         super.initQuery(
88             con,
89             isPrepared,
90             paramOrder,
91             paramTypes,
92             setRelevants,
93             sqlString );
94     }
95 }
96
Popular Tags