01: /*
02: * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/webman/mainint/db/queries/sitetree/Attic/DcCsCloneOnSd.java,v 1.4 2001/09/04 09:01:37 ralf Exp $
03: *
04: */
05: package com.teamkonzept.webman.mainint.db.queries.sitetree;
06:
07: import java.sql.*;
08:
09: import com.teamkonzept.db.*;
10:
11: public class DcCsCloneOnSd extends TKPrepQuery {
12:
13: public final static boolean ISPREPARED = true;
14:
15: public final static String[] PARAMORDER = { NODE_ID,
16: SITE_NODE_DOC_IDX, SITE_NODE_ID, SITE_NODE_DOC_IDX
17: // wird nie gesetzt???
18: // NEW_ID,
19: // NEW_IDX
20: };
21:
22: public final static Object[][] PARAMTYPES = null;
23:
24: public final static boolean[] SETRELEVANTS = null;
25:
26: public final static String SQLSTRING =
27:
28: /* clone DOCUMENT_CONTENT and CONTENT_SELECTION */
29:
30: " DECLARE "
31: + " new_id INTEGER; "
32: + " new_idx INTEGER; "
33:
34: + " new_sel_id INTEGER; "
35:
36: /* cl contains the DOCUMENT_CONTENT records, that reference old_id / old_idx */
37: + " CURSOR cl IS "
38: + " SELECT * FROM DOCUMENT_CONTENT "
39: + " WHERE "
40: + " SITE_NODE_ID = ? " /* ?OLD_ID */
41: + " AND "
42: + " SITE_NODE_DOC_IDX = ? " /* ?OLD_IDX*/
43: + " ; "
44: + " BEGIN "
45: + " new_id := ? ; " /* ?NEW_ID */
46: + " new_idx := ? ; " /* ?NEW_IDX */
47:
48: + " new_sel_id := NULL; "
49: + " FOR cl_rec IN cl "
50: + " LOOP "
51: + " IF(cl_rec.SELECTION_ID IS NOT NULL) THEN "
52:
53: + " SELECT MAX(SELECTION_ID) + 1 INTO new_sel_id FROM CONTENT_SELECTION; "
54:
55: + " INSERT INTO CONTENT_SELECTION "
56: + " SELECT new_sel_id, SELECTION_TYPE, SELECTION_DATA "
57: + " FROM CONTENT_SELECTION "
58: + " WHERE SELECTION_ID = cl_rec.SELECTION_ID; "
59: + " END IF; "
60:
61: + " INSERT INTO DOCUMENT_CONTENT "
62: + " (SITE_NODE_ID, " + " SITE_NODE_DOC_IDX, "
63: + " PRESENTATION_COMPONENT_IDX, "
64: + " CONTENT_NODE_ID, " + " PROTOTYPE_NODE_ID, "
65: + " SELECTION_ID ) " + " values( new_id, "
66: + " new_idx, "
67: + " cl_rec.PRESENTATION_COMPONENT_IDX, "
68: + " cl_rec.CONTENT_NODE_ID, "
69: + " cl_rec.PROTOTYPE_NODE_ID, " + " new_sel_id "
70: + " ); " + " END LOOP; " + " END; ";
71:
72: public void initQuery(Connection con) {
73: super.initQuery(con, ISPREPARED, PARAMORDER, PARAMTYPES,
74: SETRELEVANTS, SQLSTRING);
75: }
76: }
|