KickJava   Java API By Example, From Geeks To Geeks.

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


1 /*
2  * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/webman/mainint/db/queries/oracle/Attic/TKDBPresInsert.java,v 1.4 2001/06/11 09:14:12 alex Exp $
3  *
4  */

5 /**
6  * Jedes Selectstatement erhaelt eine eigene Klasse
7  */

8 package com.teamkonzept.webman.mainint.db.queries.oracle;
9
10 import java.sql.*;
11
12 import com.teamkonzept.db.*;
13 import com.teamkonzept.webman.mainint.WebmanExceptionHandler;
14 import com.teamkonzept.webman.mainint.db.queries.presentation.*;
15
16 /*
17  * TKDBPresInsert
18  * input "PRESENTATION_NAME", "PRESENTATION_SHORTNAME",
19           "TEMPLATE_ID",
20  * ouptut neu erzeugter DS
21  *
22  * erzeugt neuen Eintrag in PRESENTATION
23  */

24 public class TKDBPresInsert extends TKExtendedPrepQuery
25 {
26
27     public final static boolean isPrepared = true;
28
29     public final static String JavaDoc[] order =
30     { "PRESENTATION_NAME", "PRESENTATION_SHORTNAME",
31     "TEMPLATE_ID"
32     };
33
34     public final static Object JavaDoc[][] types =
35     { {"PRESENTATION_NAME", new Integer JavaDoc(Types.VARCHAR)},
36     {"PRESENTATION_SHORTNAME", new Integer JavaDoc(Types.VARCHAR)}
37     };
38
39     public final static boolean[] setRelevants = { true };
40
41 /* public final static String sqlString =
42         "DECLARE @PID int " +
43
44         "BEGIN TRANSACTION " +
45
46         "SELECT " +
47         " @PID=ISNULL(MAX(PRESENTATION_ID)+1, 0) " +
48         "FROM " +
49         " PRESENTATION " +
50
51         "INSERT INTO " +
52         " PRESENTATION " +
53         " (PRESENTATION_ID, PRESENTATION_NAME, PRESENTATION_SHORTNAME, " +
54         " TEMPLATE_ID) " +
55         "VALUES " +
56         " (@PID, ?, ?, ?) " +
57
58         "SELECT " +
59         " * " +
60         "FROM " +
61         " PRESENTATION " +
62         "WHERE " +
63         " PRESENTATION_ID = @PID " +
64
65         "COMMIT ";*/

66
67     protected static Class JavaDoc[] queryClasses = {
68     SelectMaxPresentation.class,
69     InsertPresentation.class,
70     SelectPresentation.class
71     };
72
73     public boolean execute()
74     {
75     try
76     {
77         init(queryClasses);
78
79         boolean isNotOpen = aTKDBConnection.isAutoCommit();
80         if (isNotOpen)
81         {
82         TKDBManager.beginTransaction();
83         }
84
85         // SELECT @PID=ISNULL(MAX(PRESENTATION_ID)+1, 0) FROM PRESENTATION
86
queries[0].execute();
87         int pid = 0;
88         ResultSet rs = queries[0].fetchResultSet();
89         if (rs != null && rs.next())
90         {
91         pid = rs.getInt(1) + 1;
92         }
93         Integer JavaDoc presentationId = new Integer JavaDoc(pid);
94
95         // INSERT INTO PRESENTATION (PRESENTATION_ID, PRESENTATION_NAME, PRESENTATION_SHORTNAME, TEMPLATE_ID) VALUES (@PID, ?, ?, ?)
96
queries[1].setQueryParams("PRESENTATION_ID", presentationId);
97         queries[1].setQueryParams("PRESENTATION_NAME",
98                       queryParams.get("PRESENTATION_NAME"));
99         queries[1].setQueryParams("PRESENTATION_SHORTNAME",
100                       queryParams.
101                       get("PRESENTATION_SHORTNAME"));
102         queries[1].setQueryParams("TEMPLATE_ID",
103                       queryParams.get("TEMPLATE_ID"));
104         queries[1].execute();
105         // SELECT * FROM PRESENTATION WHERE PRESENTATION_ID = @PID
106
queries[2].setQueryParams("PRESENTATION_ID", presentationId);
107         queries[2].execute();
108         addResult(queries[2].fetchResultSet());
109
110         if (isNotOpen)
111         {
112         TKDBManager.commitTransaction();
113         }
114
115     }
116     catch(Throwable JavaDoc t)
117     {
118         TKDBManager.safeRollbackTransaction(t);
119     }
120     return hasResults();
121     }
122
123     public void initQuery(Connection con)
124     {
125     super.initQuery(con, isPrepared, order, types, setRelevants, null);
126     }
127 }
128
Popular Tags