001: /*
002: * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/webman/mainint/db/queries/Attic/TKDBPresCompDelete.java,v 1.10.6.1 2002/05/06 14:08:32 ralf Exp $
003: *
004: */
005: package com.teamkonzept.webman.mainint.db.queries;
006:
007: import java.sql.*;
008:
009: import com.teamkonzept.db.*;
010: import com.teamkonzept.webman.mainint.WebmanExceptionHandler;
011: import com.teamkonzept.webman.mainint.db.queries.presentation.*;
012:
013: /**
014: * TKDBPresCompDelete
015: * input "PRESENTATION_ID", "PRESENTATION_COMPONENT_IDX",
016: * ouptut none
017: *
018: * loescht Eintrag in PRESENTATION_COMPONENT + alle referentiellen Bezuege in
019: * PRESENTATION_COTNENT, PRESENTATION_REFERENCE
020: *
021: * PRESENTATION_COMPONENT_IDX wird neu nummeriert in
022: * PRESENTATION_COMPONENT, PRESENTATION_COTNENT, PRESENTATION_REFERENCE
023: * @author
024: * @version
025: */
026: public class TKDBPresCompDelete extends TKExtendedPrepQuery {
027:
028: public final static boolean ISPREPARED = true;
029:
030: public final static String[] ORDER = { "PRESENTATION_ID",
031: "PRESENTATION_COMPONENT_IDX" };
032:
033: public final static Object[][] TYPES = null;
034:
035: public final static boolean[] SETRELEVANTS = { false };
036:
037: protected static Class[] queryClasses = {
038: DeleteFromPresentationContent.class, // [0]
039: DeleteFromPresentationReference.class, // [1]
040: DeleteFromPresentationComponent.class, // [2]
041: DeleteFromDocumentReference.class, // [3]
042: DeleteFromDocumentContent.class // [4]
043: };
044:
045: public boolean execute() {
046: try {
047: init(queryClasses);
048:
049: Integer presId = (Integer) queryParams
050: .get("PRESENTATION_ID");
051: Integer presCompIdx = (Integer) queryParams
052: .get("PRESENTATION_COMPONENT_IDX");
053:
054: boolean isNotOpen = aTKDBConnection.isAutoCommit();
055: if (isNotOpen) {
056: TKDBManager.beginTransaction();
057: }
058:
059: //DELETE FROM PRESENTATION_CONTENT
060: //WHERE PRESENTATION_ID = ? AND PRESENTATION_COMPONENT_IDX = ?
061: queries[0].setQueryParams("PRESENTATION_ID", presId);
062: queries[0].setQueryParams("PRESENTATION_COMPONENT_IDX",
063: presCompIdx);
064: queries[0].execute();
065:
066: //DELETE FROM PRESENTATION_REFERENCE
067: //WHERE PRESENTATION_ID = ? AND PRESENTATION_COMPONENT_IDX = ?
068: queries[1].setQueryParams("PRESENTATION_ID", presId);
069: queries[1].setQueryParams("PRESENTATION_COMPONENT_IDX",
070: presCompIdx);
071: queries[1].execute();
072:
073: //DELETE FROM PRESENTATION_COMPONENT
074: //WHERE PRESENTATION_ID = ? AND PRESENTATION_COMPONENT_IDX = ?
075: queries[2].setQueryParams("PRESENTATION_ID", presId);
076: queries[2].setQueryParams("PRESENTATION_COMPONENT_IDX",
077: presCompIdx);
078: queries[2].execute();
079:
080: //DELETE FROM DOCUMENT_REFERENCE
081: //WHERE SRC_PRESENTATION_COMPONENT_IDX = ? AND
082: // SRC_SITE_NODE_ID IN
083: // ( SELECT S.SITE_NODE_ID FROM SITE_DOCUMENT S, DOCUMENT_REFERENCE D
084: // WHERE PRESENTATION_ID = ? AND S.SITE_NODE_ID = D.SRC_SITE_NODE_ID AND
085: // S.SITE_NODE_DOC_IDX = D.SRC_SITE_NODE_DOC_IDX )
086: // AND SRC_SITE_NODE_DOC_IDX IN
087: // ( SELECT S.SITE_NODE_DOC_IDX FROM SITE_DOCUMENT S, DOCUMENT_REFERENCE D
088: // WHERE PRESENTATION_ID = ? AND S.SITE_NODE_ID = D.SRC_SITE_NODE_ID AND
089: // S.SITE_NODE_DOC_IDX = D.SRC_SITE_NODE_DOC_IDX )
090: queries[3].setQueryParams("PRESENTATION_ID", presId);
091: queries[3].setQueryParams("PRESENTATION_COMPONENT_IDX",
092: presCompIdx);
093: queries[3].execute();
094:
095: //DELETE FROM DOCUMENT_CONTENT
096: //WHERE PRESENTATION_COMPONENT_IDX = ? AND SITE_NODE_ID IN
097: // ( SELECT S.SITE_NODE_ID FROM SITE_DOCUMENT S, DOCUMENT_CONTENT D
098: // WHERE PRESENTATION_ID = ? AND S.SITE_NODE_ID = D.SITE_NODE_ID AND
099: // S.SITE_NODE_DOC_IDX = D.SITE_NODE_DOC_IDX )
100: // AND SITE_NODE_DOC_IDX IN
101: // ( SELECT S.SITE_NODE_DOC_IDX FROM SITE_DOCUMENT S, DOCUMENT_CONTENT D
102: // WHERE PRESENTATION_ID = ? AND S.SITE_NODE_ID = D.SITE_NODE_ID AND
103: // S.SITE_NODE_DOC_IDX = D.SITE_NODE_DOC_IDX )
104: queries[4].setQueryParams("PRESENTATION_ID", presId);
105: queries[4].setQueryParams("PRESENTATION_COMPONENT_IDX",
106: presCompIdx);
107: queries[4].execute();
108:
109: if (isNotOpen) {
110: TKDBManager.commitTransaction();
111: }
112:
113: } catch (Throwable t) {
114: TKDBManager.safeRollbackTransaction(t);
115: }
116: return hasResults();
117: }
118:
119: public void initQuery(Connection con) {
120: super.initQuery(con, ISPREPARED, ORDER, TYPES, SETRELEVANTS,
121: null);
122: }
123: }
|