KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > teamkonzept > webman > mainint > db > queries > oracle > TKDBGetAllNodeContentVersions


1 package com.teamkonzept.webman.mainint.db.queries.oracle;
2
3 import com.teamkonzept.db.*;
4 import java.sql.*;
5 import com.teamkonzept.lib.templates.*;
6
7 /**
8  * TKDBGetAllNodeContentVersions <br>
9  * Holt alle versionen aller aktuellen Contents eines Content-Tree-Knotens.
10  *
11  * Note that the &lt;TK:SEARCH_UNC&gr; contains neither of the following signs anymore:
12  * "%", "'". Oracle does not allow LIKE-statement in conjunction with CLOB datatypes
13  * so a function called DBMS_LOB.INSTR(&lt;clob&gr;, &lt;pattern&gr; is used that returns the first matching
14  * location of the pattern in the CLOB. That is, if this function returns a value greater
15  * than zero, the pattern is found (no matter where exactly).
16  * @see com.teamkonzept.webman.mainint.db.queries.oracle.TKDBGetAllNodeContentVersions
17  *
18  * @author $Author: alex $
19  * @version $Revision: 1.11 $
20  */

21 public class TKDBGetAllNodeContentVersions extends TKUnprepQuery
22 {
23
24     public final static Object JavaDoc[][] PARAMTYPES =
25         { {"SEARCH", new Integer JavaDoc(Types.VARCHAR)},
26           {"SEARCH_UNC", new Integer JavaDoc(Types.VARCHAR)} };
27
28     public final static boolean[] SET_RELEVANTS =
29         { true };
30
31      /** der SQL String */
32     public final static String JavaDoc SQL_STRING =
33         "SELECT " +
34         " CV.VERSION_ID, CV.INSTANCE_ID, CI.CONTENT_NODE_ID, CV.CONTENT_ID, CV.STATUS_ID, CV.VERSION_DATE, CV.AUTHOR, CV.INFO, VS.STATUS, " +
35         " CT.CONTENT_NODE_NAME, CT2.CONTENT_NODE_TYPE AS PARENT_TYPE,CT.CONTENT_NODE_PARENT, CT.CONTENT_NODE_SHORTNAME, CT.CONTENT_FORM, CT.CONTENT_NODE_TYPE, CI.NAME " +
36         "FROM " +
37         " CONTENT C,<TK_CASE:KENNUNG> CONTENT_VALUE CVALUE,</TK_CASE> CONTENT_TREE CT, CONTENT_TREE CT2, CONTENT_VERSION CV, VERSION_STATUS VS, CONTENT_INSTANCE CI " +
38         "WHERE " +
39         " ( CT.CONTENT_NODE_PARENT = <TK_CONTENT_NODE_ID> OR " +
40         " CT.CONTENT_NODE_ID = <TK_CONTENT_NODE_ID> " +
41         " ) AND " +
42
43         " CI.CONTENT_NODE_ID = CT.CONTENT_NODE_ID AND " +
44         " CV.INSTANCE_ID = CI.INSTANCE_ID AND " +
45         " C.CONTENT_ID = CV.CONTENT_ID AND " +
46         " CV.STATUS_ID = VS.STATUS_ID AND " +
47         " CT2.CONTENT_NODE_ID = CT.CONTENT_NODE_PARENT " +
48         
49         " <TK_CASE:KENNUNG> AND " +
50         " CVALUE.CONTENT_ID = CV.CONTENT_ID " +
51         " <TK_IF:KENNUNG=0> " +
52         " AND (<TK_LIST:SEARCH_STRING>(DBMS_LOB.INSTR(CVALUE.VALUE, <TK:SEARCH_UNC>) > 0) <TK:CONN> </TK_LIST>) " +
53         " </TK_IF:KENNUNG=0> " +
54         " <TK_IF:KENNUNG=1> " +
55         " AND " +
56         " ((<TK_LIST:SEARCH_STRING>(CT.CONTENT_NODE_NAME LIKE <TK:SEARCH> ESCAPE '\\' ) <TK:CONN> </TK_LIST>) " +
57         " OR " +
58         " (<TK_LIST:SEARCH_STRING>(CT.CONTENT_NODE_SHORTNAME LIKE <TK:SEARCH> ESCAPE '\\' ) <TK:CONN> </TK_LIST>)) " +
59         " </TK_IF> " +
60         " </TK_CASE> " +
61                 
62         "ORDER BY " +
63         "CV.INSTANCE_ID, CV.CONTENT_ID, CV.VERSION_ID ";
64         
65         
66     public static TKTemplateSyntax sqlTmplSyntax;
67
68     public void initQuery(Connection con)
69     {
70         try
71         {
72             sqlTmplSyntax = new TKTemplateSyntax(SQL_STRING,"");
73         }
74         catch(com.teamkonzept.lib.TKTemplateSyntaxException e)
75         {
76             sqlString = SQL_STRING; // für JTest
77
}
78         
79         super.initQuery(
80             con,
81             PARAMTYPES,
82             SET_RELEVANTS,
83             sqlTmplSyntax );
84     }
85 }
86
Popular Tags