KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > webman > acl > db > queries > TaskInsert


1 package de.webman.acl.db.queries;
2
3 import java.sql.Connection JavaDoc;
4 import java.sql.Types JavaDoc;
5 import java.sql.SQLException JavaDoc;
6 import java.sql.ResultSet JavaDoc;
7 import com.teamkonzept.db.*;
8 import com.teamkonzept.webman.mainint.db.queries.accesscontrol.*;
9 import com.teamkonzept.webman.mainint.WebmanExceptionHandler;
10
11 /**
12  * $Header: /cvsroot/webman-cms/source/webman/de/webman/acl/db/queries/TaskInsert.java,v 1.2 2001/09/19 11:51:38 markus Exp $
13  *
14  * @version 0.10
15  * @since 0.10
16  * @author © 2000 Team-Konzept
17  */

18 public class TaskInsert
19     extends TKExtendedPrepQuery
20 {
21
22     // Constants
23

24     public static final String JavaDoc[] ORDER =
25     {
26         "NAME",
27         "WM_CONTEXT_ID"
28     };
29
30     public static final Object JavaDoc[][] TYPES =
31     {
32         {"NAME", new Integer JavaDoc(Types.VARCHAR)},
33         {"WM_CONTEXT_ID", new Integer JavaDoc(Types.INTEGER)}
34     };
35
36     public static final boolean[] RELEVANTS =
37     {
38         true
39     };
40
41 /* public static final String SQL = (new StringBuffer()).append("DECLARE @ID INT ")
42                                                          .append("SELECT @ID = ISNULL(MAX(WM_TASK_ID) + 1, 1) FROM WM_TASK ")
43                                                          .append("INSERT INTO WM_TASK (WM_TASK_ID, NAME, WM_CONTEXT_ID) VALUES (@ID, ?, ?) ")
44                                                          .append("SELECT * FROM WM_TASK WHERE WM_TASK_ID = @ID")
45                                                          .toString(); */

46
47   public static final String JavaDoc SQL = null;
48
49     protected static Class JavaDoc[] queryClasses = {
50       SelectIDWMTask.class,
51       InsertWMTask.class,
52       SelectWMTask.class
53     };
54
55     // Method implementations
56

57   public boolean execute() {
58     try {
59         init(queryClasses);
60
61         boolean isNotOpen = aTKDBConnection.isAutoCommit();
62         if (isNotOpen) { aTKDBConnection.beginTransaction(); }
63         queries[0].execute(); // execute first query
64
ResultSet JavaDoc rs = queries[0].fetchResultSet();
65         Integer JavaDoc wmTaskId = null;
66         if (rs != null && rs.next()) {
67           int max = 1;
68            max = rs.getInt(1) + 1; // get max if any and increase by 1
69
wmTaskId = new Integer JavaDoc(max);
70         }
71
72         queries[1].setQueryParams("WM_TASK_ID", wmTaskId);
73         queries[1].setQueryParams("WM_CONTEXT_ID", queryParams.get("WM_CONTEXT_ID"));
74         queries[1].setQueryParams("NAME", queryParams.get("NAME"));
75         queries[1].execute(); // ...and execute it
76

77         queries[2].setQueryParams("WM_TASK_ID", wmTaskId);
78         queries[2].execute(); // ...and execute it
79
addResult(queries[2].fetchResultSet());
80
81         if (isNotOpen) { aTKDBConnection.commitTransaction(); }
82
83     }
84     catch (SQLException JavaDoc sqle) {
85       WebmanExceptionHandler.getException(sqle);
86       try {
87         aTKDBConnection.rollbackTransaction();
88       }
89       catch (SQLException JavaDoc sqle2) {
90         WebmanExceptionHandler.getException(sqle2);
91       }
92     }
93     finally {
94         return hasResults();
95     }
96   }
97
98     public void initQuery (Connection JavaDoc connection)
99     {
100         super.initQuery(connection,
101                         true,
102                         ORDER,
103                         TYPES,
104                         RELEVANTS,
105                         SQL);
106     }
107
108 }
109
Popular Tags