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 sessionId; 12 13 public SaveModeNonPreparedStatement(Connection serverSession0,StatementExecuter parsedObject0, String verboseUser0, SaveModeHandler saveModeHandler0, Object sessionId0) { 14 super(serverSession0,parsedObject0,verboseUser0); 15 saveModeHandler = saveModeHandler0; 16 sessionId = sessionId0; 17 } 18 19 public Object execute(Object [] parm1) throws com.daffodilwoods.database. 20 resource.DException { 21 PrintHandler.print(parsedObject, null,verboseUser); 22 Object 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 (0); 49 return returnedObject; 50 } 51 52 public Object execute(_VariableValues parm1, int parm2) throws com.daffodilwoods.database.resource.DException { 53 Object returnedObject = parsedObject.run(serverSession); 54 saveModeHandler.write(sessionId,parsedObject,getValues(parm1)); 55 if(returnedObject == null) 56 return new Integer (0); 57 return returnedObject; 58 } 59 60 private Object [] getValues(_VariableValues vv) throws DException { 61 Object [][] refValues = vv.getReferenceAndValuePair(); 62 Object [] values = new Object [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 |