1 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 [] paramOrder = 18 null; 19 public final static Object [][] paramTypes = 20 null; 21 22 public final static boolean[] setRelevants = 23 null; 24 25 public final static String sqlString = 26 27 28 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; " 34 + " old_dest INTEGER; " 35 + " curr_id INTEGER; " 36 + " ref_type INTEGER; " 37 + " BEGIN " 38 + " curr_id := old_id; " 39 + " new_dest := new_id; " 40 41 + " " 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 + " " 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 |