KickJava   Java API By Example, From Geeks To Geeks.

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


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

5 package com.teamkonzept.webman.mainint.db.queries.oracle;
6
7 import java.sql.*;
8
9 import com.teamkonzept.db.*;
10 import com.teamkonzept.webman.mainint.db.queries.properties.*;
11 import com.teamkonzept.webman.mainint.WebmanExceptionHandler;
12
13 /*
14  * TKDBPropNew
15  * input "PROP_NAME"
16  * output neuer DS
17  * erzeugt neuen Eintrag in PROPERTIES
18  */

19 public class TKDBPropNew extends TKExtendedPrepQuery
20 {
21
22     public final static boolean isPrepared = true;
23
24     public final static String JavaDoc[] paramOrder = { "PROP_NAME",
25     "PROP_VALUE"
26     };
27
28     public final static Object JavaDoc[][] paramTypes =
29     { {"PROP_NAME", new Integer JavaDoc(Types.VARCHAR)},
30     {"PROP_VALUE", new Integer JavaDoc(Types.LONGVARCHAR)}
31     };
32
33     public final static boolean[] setRelevants = { true };
34
35 /* public final static String sqlString =
36
37         "DECLARE @PID int " +
38
39         "BEGIN TRANSACTION " +
40         
41         "SELECT " +
42         " @PID=ISNULL(MAX(PROPERTY_ID)+1, 0) " +
43         "FROM " +
44         " PROPERTY " +
45         
46         "INSERT INTO " +
47         "PROPERTY " +
48         " (PROPERTY_ID, NAME, VALUE) " +
49         "VALUES (@PID, ?, ?) " +
50         
51         "COMMIT TRANSACTION " +
52
53         "SELECT @PID as PROP_ID "; */

54     protected static Class JavaDoc[] queryClasses = {
55     SelectMaxProperty.class, // [0]
56
InsertProperty.class, // [1]
57
SelectPropId.class // [2]
58
};
59
60     public boolean execute()
61     {
62     try
63     {
64
65         init(queryClasses); // init query objects
66

67         // BEGIN TRANSACTION
68
boolean isNotOpen = aTKDBConnection.isAutoCommit();
69         if (isNotOpen)
70         {
71         TKDBManager.beginTransaction(); // begin transaction
72
}
73
74         Object JavaDoc propId = null;
75         // OLD: SELECT @PID=ISNULL(MAX(PROPERTY_ID)+1, 0) FROM PROPERTY
76
// NEW: SELECT DBStringFactory.nvl(MAX(PROPERTY_ID)+1, 0) FROM PROPERTY
77
// CLASS: SelectMaxProperty.class
78
// [0]
79
queries[0].execute();
80         ResultSet rs = queries[0].fetchResultSet();
81         if (rs != null && rs.next())
82         {
83         propId = rs.getObject(1);
84         }
85
86
87         // OLD: INSERT INTO PROPERTY (PROPERTY_ID, NAME, VALUE) VALUES (@PID, ?, ?)
88
// NEW: INSERT INTO PROPERTY (PROPERTY_ID, NAME, VALUE) VALUES (?, ?, ?)
89
// PARAMS: PROP_ID, PROP_NAME, PROP_VALUE
90
// CLASS: InsertProperty.class
91
// [1]
92
queries[1].setQueryParams("PROP_ID", propId);
93         queries[1].setQueryParams("PROP_NAME",
94                       queryParams.get("PROP_NAME"));
95         queries[1].setQueryParams("PROP_VALUE",
96                       queryParams.get("PROP_VALUE"));
97         queries[1].execute();
98
99         // OLD: SELECT @PID as PROP_ID
100
// NEW: SELECT ? AS PROP_ID
101
// PARAMS: PROP_ID
102
// CLASS: SelectPropId.class
103
// [2]
104
queries[2].setQueryParams("PROP_ID", propId);
105         queries[2].execute();
106         addResult(queries[2].fetchResultSet());
107
108
109         // COMMIT TRANSACTION
110
if (isNotOpen)
111         {
112         aTKDBConnection.commitTransaction(); // commit all changes
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,
126             isPrepared,
127             paramOrder, paramTypes, setRelevants, sqlString);
128     }
129 }
130
Popular Tags