1 22 43 44 package org.continuent.sequoia.console.text.commands.sqlconsole; 45 46 import java.io.IOException ; 47 import java.sql.CallableStatement ; 48 import java.sql.Connection ; 49 import java.sql.ResultSet ; 50 51 import org.continuent.sequoia.common.i18n.ConsoleTranslate; 52 import org.continuent.sequoia.console.text.ConsoleException; 53 import org.continuent.sequoia.console.text.commands.ConsoleCommand; 54 import org.continuent.sequoia.console.text.formatter.ResultSetFormatter; 55 import org.continuent.sequoia.console.text.module.VirtualDatabaseConsole; 56 57 62 public class CallStoredProcedure extends ConsoleCommand 63 { 64 65 70 public CallStoredProcedure(VirtualDatabaseConsole module) 71 { 72 super(module); 73 } 74 75 78 public void parse(String commandText) throws IOException , ConsoleException 79 { 80 callStoredProcedure(getCommandName() + " " + commandText); } 82 83 86 public String getCommandName() 87 { 88 return "{call"; } 90 91 94 public String getCommandParameters() 95 { 96 return ConsoleTranslate.get("sql.command.call.stored.procedure.params"); } 98 99 102 public String getCommandDescription() 103 { 104 return ConsoleTranslate 105 .get("sql.command.call.stored.procedure.description"); } 107 108 113 private synchronized void callStoredProcedure(String proc) 114 { 115 Connection connection = ((VirtualDatabaseConsole) module).getConnection(); 116 int fetchsize = ((VirtualDatabaseConsole) module).getFetchsize(); 117 CallableStatement cs = null; 118 try 119 { 120 cs = connection.prepareCall(proc); 121 cs.setQueryTimeout(((VirtualDatabaseConsole) module).getTimeout()); 122 123 long start = System.currentTimeMillis(); 124 long end; 125 ResultSet rs = cs.executeQuery(); 126 end = System.currentTimeMillis(); 127 ResultSetFormatter.formatAndDisplay(rs, fetchsize, console); 128 console.printInfo(ConsoleTranslate.get("sql.display.query.time", new Long []{new Long ((end - start) / 1000), 130 new Long ((end - start) % 1000)})); 131 } 132 catch (Exception e) 133 { 134 console.printError(ConsoleTranslate.get( 135 "sql.command.call.stored.procedure.failed", e), e); } 137 finally 138 { 139 try 140 { 141 cs.close(); 142 } 143 catch (Exception ignore) 144 { 145 } 146 } 147 } 148 } | Popular Tags |