KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > teamkonzept > webman > mainint > db > queries > sitetree > CreateProcAdjustRefs


1 /*
2  * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/webman/mainint/db/queries/sitetree/Attic/CreateProcAdjustRefs.java,v 1.2 2000/12/13 11:29:31 marwan Exp $
3  *
4  */

5 package com.teamkonzept.webman.mainint.db.queries.sitetree;
6
7 import java.sql.*;
8
9 import com.teamkonzept.db.*;
10
11
12 public class CreateProcAdjustRefs extends TKPrepQuery{
13
14     public final static boolean isPrepared =
15         true;
16     
17     public final static String JavaDoc[] paramOrder =
18         null;
19     public final static Object JavaDoc[][] paramTypes =
20         null;
21         
22     public final static boolean[] setRelevants =
23         null;
24         
25     public final static String JavaDoc sqlString =
26         
27         
28       /* procedure for adjusting relative references of a certain DOCUMENT_REFERENCE record */
29
30
31   " CREATE OR REPLACE FUNCTION adjust_relative_refs(old_id INTEGER, old_idx INTEGER, component_idx INTEGER, new_id INTEGER, new_idx INTEGER) "
32  + " RETURN INTEGER IS "
33  + " new_dest INTEGER; " /* return value */
34  + " old_dest INTEGER; "
35  + " curr_id INTEGER; " /* running pointer */
36  + " ref_type INTEGER; "
37  + " BEGIN "
38  + " curr_id := old_id; "
39  + " new_dest := new_id; "
40     
41  + " " /* consider only REFERENCE_TYPE 2 */
42  + " SELECT REFERENCE_TYPE INTO ref_type FROM DOCUMENT_REFERENCE WHERE SRC_SITE_NODE_ID = new_id AND SRC_SITE_NODE_DOC_IDX = new_idx AND SRC_PRESENTATION_COMPONENT_IDX = component_idx; "
43  + " IF(ref_type != 2) "
44  + " THEN "
45  + " RETURN new_dest; "
46  + " END IF; "
47     
48  + " " /* find old destination */
49         
50  + " SELECT DEST_SITE_NODE_ID INTO old_dest "
51  + " FROM DOCUMENT_REFERENCE "
52  + " WHERE SRC_SITE_NODE_ID = old_id AND SRC_SITE_NODE_DOC_IDX = old_idx AND SRC_PRESENTATION_COMPONENT_IDX = component_idx; "
53     
54  + " WHILE(curr_id != old_dest) LOOP "
55  + " SELECT SITE_NODE_PARENT INTO curr_id FROM SITE_TREE WHERE SITE_NODE_ID = curr_id; "
56  + " SELECT SITE_NODE_PARENT INTO new_dest FROM SITE_TREE WHERE SITE_NODE_ID = new_dest; "
57         
58  + " END LOOP; "
59           
60  + " RETURN new_dest; "
61  + " END adjust_relative_refs; " ;
62
63     public void initQuery(Connection con) {
64         super.initQuery(
65             con,
66             isPrepared,
67             paramOrder,
68             paramTypes,
69             setRelevants,
70             sqlString );
71     }
72 }
73
74
75
Popular Tags