1 package com.teamkonzept.webman.mainint.db.queries.sybase; 2 3 import com.teamkonzept.db.*; 4 import java.sql.*; 5 6 13 public class TKDBContentTreeDeleteNode extends TKPrepQuery { 14 15 public final static boolean ISPREPARED = 16 true; 17 18 public final static String [] PARAMORDER = 19 { "CONTENT_NODE_ID" }; 20 21 public final static Object [][] PARAMTYPES = 22 null; 23 24 public final static boolean[] SETRELEVANTS = 25 { false }; 26 27 public final static String SQLSTRING = 28 "DECLARE @L_NR INT " + 29 "DECLARE @R_NR INT " + 30 "DECLARE @DIFF INT " + 31 32 33 "CREATE TABLE #temp " + 34 "( " + 35 " CONTENT_ID int " + 36 ") " + 37 38 "CREATE TABLE #temp2 " + 39 "( " + 40 " INSTANCE_ID int " + 41 ") " + 42 43 "BEGIN TRANSACTION " + 44 45 "SELECT " + 46 " @L_NR = LEFT_NR, @R_NR = RIGHT_NR " + 47 "FROM " + 48 " CONTENT_TREE " + 49 "WHERE " + 50 " CONTENT_NODE_ID = ? " + 51 52 "SELECT @DIFF = @R_NR - @L_NR + 1 " + 53 54 "INSERT INTO " + 55 " #temp2 " + 56 " (INSTANCE_ID) " + 57 "SELECT " + 58 " CI.INSTANCE_ID " + 59 "FROM " + 60 " CONTENT_TREE CT, CONTENT_INSTANCE CI " + 61 "WHERE " + 62 " CT.CONTENT_NODE_ID = CI.CONTENT_NODE_ID " + 63 "AND " + 64 " CT.LEFT_NR >= @L_NR " + 65 "AND " + 66 " CT.RIGHT_NR <= @R_NR " + 67 68 "INSERT INTO " + 69 " #temp " + 70 " (CONTENT_ID) " + 71 "SELECT " + 72 " C.CONTENT_ID " + 73 "FROM " + 74 " #temp2 T, CONTENT_VERSION CV, CONTENT C " + 75 "WHERE " + 76 " T.INSTANCE_ID = CV.INSTANCE_ID AND " + 77 " CV.CONTENT_ID = C.CONTENT_ID " + 78 79 "DELETE FROM " + 80 " CONTENT_VALUE " + 81 "WHERE " + 82 " CONTENT_ID IN " + 83 " (SELECT CONTENT_ID FROM #temp) " + 84 85 "DELETE FROM " + 86 " CONTENT_NODE " + 87 "WHERE " + 88 " CONTENT_ID IN " + 89 " (SELECT CONTENT_ID FROM #temp) " + 90 91 "DELETE FROM " + 92 " STRUCTURED_CONTENT " + 93 "WHERE " + 94 " CONTENT_ID IN " + 95 " (SELECT CONTENT_ID FROM #temp) " + 96 97 "DELETE FROM " + 98 " CONTENT_VERSION " + 99 "WHERE " + 100 " INSTANCE_ID IN (SELECT INSTANCE_ID FROM #temp2) " + 101 102 "DELETE FROM " + 103 " CONTENT_INSTANCE " + 104 "WHERE " + 105 " INSTANCE_ID IN (SELECT INSTANCE_ID FROM #temp2) " + 106 107 "DELETE FROM " + 108 " CONTENT " + 109 "WHERE " + 110 " CONTENT_ID IN " + 111 " (SELECT CONTENT_ID FROM #temp) " + 112 113 "DELETE FROM " + 114 " CONTENT_ATTRIBUTE_VALUE " + 115 " WHERE " + 116 " CONTENT_ID IN " + 117 " (SELECT CONTENT_ID FROM #temp) " + 118 119 "DELETE FROM " + 120 " CONTENT_ATTRIBUTE " + 121 " WHERE NOT ( " + 122 " VALUE_ID IN " + 123 " (SELECT VALUE_ID FROM CONTENT_ATTRIBUTE_VALUE ) ) " + 124 125 126 "DELETE FROM " + 127 " CONTENT_TREE " + 128 "WHERE " + 129 " LEFT_NR >= @L_NR " + 130 "AND " + 131 " RIGHT_NR <= @R_NR " + 132 133 "UPDATE " + 134 " CONTENT_TREE " + 135 "SET " + 136 " RIGHT_NR = RIGHT_NR - @DIFF " + 137 "WHERE " + 138 " RIGHT_NR > @R_NR " + 139 140 "UPDATE " + 141 " CONTENT_TREE " + 142 "SET " + 143 " LEFT_NR = LEFT_NR - @DIFF " + 144 "WHERE " + 145 " LEFT_NR > @L_NR " + 146 147 "COMMIT TRANSACTION " + 148 149 "DROP TABLE #temp " + 150 "DROP TABLE #temp2 "; 151 152 public void initQuery(Connection con) { 153 super.initQuery( 154 con, 155 ISPREPARED, 156 PARAMORDER, 157 PARAMTYPES, 158 SETRELEVANTS, 159 SQLSTRING ); 160 } 161 } 162 | Popular Tags |