bloritsch    01/03/12 14:12:35

  Modified:    src/org/apache/cocoon/acting Tag: xml-cocoon2
                        DatabaseAddAction.java OraAddAction.java
  Log:
  More index fixes and support for a new "key" mode.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.17  +9 -3      
xml-cocoon/src/org/apache/cocoon/acting/Attic/DatabaseAddAction.java
  
  Index: DatabaseAddAction.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/acting/Attic/DatabaseAddAction.java,v
  retrieving revision 1.1.2.16
  retrieving revision 1.1.2.17
  diff -u -r1.1.2.16 -r1.1.2.17
  --- DatabaseAddAction.java    2001/03/12 18:16:58     1.1.2.16
  +++ DatabaseAddAction.java    2001/03/12 22:12:32     1.1.2.17
  @@ -40,7 +40,7 @@
    * only one table at a time to update.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a>
  - * @version CVS $Revision: 1.1.2.16 $ $Date: 2001/03/12 18:16:58 $
  + * @version CVS $Revision: 1.1.2.17 $ $Date: 2001/03/12 22:12:32 $
    */
   public class DatabaseAddAction extends AbstractDatabaseAction {
       protected static final Map addStatements = new HashMap();
  @@ -75,7 +75,9 @@
               currentIndex = 1;
   
               for (int i = 0; i < keys.length; i++) {
  -                if ("manual".equals(keys[i].getAttribute("mode", 
"automatic"))) {
  +                String mode = keys[i].getAttribute("mode", "automatic");
  +
  +                if ("manual".equals(mode)) {
                       String selectQuery = this.getSelectQuery(keys[i]);
   
                       ResultSet set = 
conn.createStatement().executeQuery(selectQuery);
  @@ -87,6 +89,9 @@
                       set.close();
                       set.getStatement().close();
                       currentIndex++;
  +                } else if ("form".equals(mode)) {
  +                    this.setColumn(statement, currentIndex, request, 
values[i]);
  +                    currentIndex++;
                   }
               }
   
  @@ -145,7 +150,8 @@
                   int numKeys = 0;
   
                   for (int i = 0; i < keys.length; i++) {
  -                    if ("manual".equals(keys[i].getAttribute("mode", 
"automatic"))) {
  +                    String mode = keys[i].getAttribute("mode", "automatic");
  +                    if ("manual".equals(mode) || "form".equals(mode)) {
                           if (i > 0) {
                               queryBuffer.append(", ");
                           }
  
  
  
  1.1.2.7   +24 -9     
xml-cocoon/src/org/apache/cocoon/acting/Attic/OraAddAction.java
  
  Index: OraAddAction.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/acting/Attic/OraAddAction.java,v
  retrieving revision 1.1.2.6
  retrieving revision 1.1.2.7
  diff -u -r1.1.2.6 -r1.1.2.7
  --- OraAddAction.java 2001/03/12 20:52:05     1.1.2.6
  +++ OraAddAction.java 2001/03/12 22:12:33     1.1.2.7
  @@ -41,7 +41,7 @@
    * only one table at a time to update.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a>
  - * @version CVS $Revision: 1.1.2.6 $ $Date: 2001/03/12 20:52:05 $
  + * @version CVS $Revision: 1.1.2.7 $ $Date: 2001/03/12 22:12:33 $
    */
   public class OraAddAction extends DatabaseAddAction {
       private static final Map selectLOBStatements = new HashMap();
  @@ -69,13 +69,16 @@
               }
   
               PreparedStatement statement = conn.prepareStatement(query);
  +            getLogger().info(query);
   
               Configuration[] keys = 
conf.getChild("table").getChild("keys").getChildren("key");
               Configuration[] values = 
conf.getChild("table").getChild("values").getChildren("value");
               currentIndex = 1;
   
               for (int i = 0; i < keys.length; i++) {
  -                if ("manual".equals(keys[i].getAttribute("mode", 
"automatic"))) {
  +                String mode = keys[i].getAttribute("mode", "automatic");
  +
  +                if ("manual".equals(mode)) {
                       String selectQuery = this.getSelectQuery(keys[i]);
   
                       ResultSet set = 
conn.createStatement().executeQuery(selectQuery);
  @@ -85,11 +88,15 @@
                       statement.setInt(currentIndex, value);
   
                       request.setAttribute(keys[i].getAttribute("param"), 
String.valueOf(value));
  -                    getLogger().info(currentIndex + ": " + 
keys[i].getAttribute("param"));
   
                       set.close();
                       set.getStatement().close();
                       currentIndex++;
  +                } else if ("form".equals(mode)) {
  +                    String parameter = keys[i].getAttribute("param");
  +                    request.setAttribute(parameter, 
request.getParameter(parameter));
  +                    this.setColumn(statement, currentIndex, request, 
keys[i]);
  +                    currentIndex++;
                   }
               }
   
  @@ -122,15 +129,19 @@
               statement.close();
   
               query = this.getSelectLOBQuery(conf);
  +            getLogger().info(query);
   
               if ("".equals(query) == false) {
                   PreparedStatement LOBstatement = 
conn.prepareStatement(query);
                   getLogger().info(query);
   
  -                currentIndex = 1;
  +                if (keys.length > 0) {
  +                    currentIndex = 1;
   
  -                for (int i = 0; i < keys.length; i++, currentIndex++) {
  -                    this.setColumn(statement, currentIndex, request, 
keys[i]);
  +                    for (int i = 0; i < keys.length; i++) {
  +                        this.setColumn(statement, currentIndex, request, 
keys[i]);
  +                        currentIndex++;
  +                    }
                   }
   
                   OracleResultSet set = (OracleResultSet) 
LOBstatement.executeQuery();
  @@ -236,13 +247,17 @@
                   int numKeys = 0;
   
                   for (int i = 0; i < keys.length; i++) {
  -                    if ("manual".equals(keys[i].getAttribute("mode", 
"automatic"))) {
  -                        if (i > 0) {
  +                    String mode = keys[i].getAttribute("mode", "automatic");
  +                    if ("manual".equals(mode) || "form".equals(mode)) {
  +                        if (numKeys > 0) {
                               queryBuffer.append(", ");
                           }
   
                           queryBuffer.append(keys[i].getAttribute("dbcol"));
  -                        this.setSelectQuery(table.getAttribute("name"), 
keys[i]);
  +
  +                        if ("manual".equals(mode)) {
  +                            this.setSelectQuery(table.getAttribute("name"), 
keys[i]);
  +                        }
                           numKeys++;
                       }
                   }
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to