KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > serversystem > SaveModeNonPreparedStatement


1 package com.daffodilwoods.daffodildb.server.serversystem;
2
3 import com.daffodilwoods.daffodildb.server.datadictionarysystem.*;
4 import com.daffodilwoods.daffodildb.server.sql99.utils.*;
5 import com.daffodilwoods.daffodildb.utils.parser.*;
6 import com.daffodilwoods.database.resource.*;
7
8 public class SaveModeNonPreparedStatement extends NonPreparedStatement {
9
10    private SaveModeHandler saveModeHandler;
11    private Object JavaDoc sessionId;
12
13    public SaveModeNonPreparedStatement(Connection serverSession0,StatementExecuter parsedObject0, String JavaDoc verboseUser0, SaveModeHandler saveModeHandler0, Object JavaDoc sessionId0) {
14      super(serverSession0,parsedObject0,verboseUser0);
15      saveModeHandler = saveModeHandler0;
16      sessionId = sessionId0;
17    }
18
19    public Object JavaDoc execute(Object JavaDoc[] parm1) throws com.daffodilwoods.database.
20
       resource.DException {
21      PrintHandler.print(parsedObject, null,verboseUser);
22      Object JavaDoc returnedObject = null;
23      if (queryType == PreparedStatement.SQLschemastatement) {
24        serverSession.commit();
25        _DataDictionary dd =serverSession.getDataDictionary();
26        dd.lockDDL();
27        _ServerSession ss = serverSession.getSystemServerSession();
28        try {
29          try {
30            returnedObject = parsedObject.run(serverSession);
31          }
32          catch (DException ex) {
33            dd.restoreGeneratedKeys();
34            ss.rollback();
35            throw ex;
36          }
37          ss.commit();
38        }
39        finally {
40          dd.releaseDDL();
41        }
42        saveModeHandler.write(sessionId,parsedObject,parm1);
43      }
44      else
45        returnedObject = parsedObject.run(serverSession);
46
47      if (returnedObject == null)
48        return new Integer JavaDoc(0);
49      return returnedObject;
50    }
51
52    public Object JavaDoc execute(_VariableValues parm1, int parm2) throws com.daffodilwoods.database.resource.DException {
53       Object JavaDoc returnedObject = parsedObject.run(serverSession);
54       saveModeHandler.write(sessionId,parsedObject,getValues(parm1));
55       if(returnedObject == null)
56          return new Integer JavaDoc(0);
57       return returnedObject;
58    }
59
60    private Object JavaDoc[] getValues(_VariableValues vv) throws DException {
61      Object JavaDoc[][] refValues = vv.getReferenceAndValuePair();
62      Object JavaDoc[] values = new Object JavaDoc[refValues.length];
63      for (int i = 0; i < values.length; i++) {
64        values[i] = refValues[i][1];
65      }
66      return values;
67    }
68 }
69
Popular Tags