/**
  * Execute.
  *
  * @param inputGroups input groups
  * @param firstCallback first SQL execute callback
  * @param callback SQL execute callback
  * @param <T> class type of return value
  * @return execute result
  * @throws SQLException SQL exception
  */
 public List <R> Execute <R>(ICollection <InputGroup <CommandExecuteUnit> > inputGroups,
                             SqlExecuteCallback <R> firstCallback, SqlExecuteCallback <R> callback)
 {
     try
     {
         return(ExecutorEngine.Execute(inputGroups, firstCallback, callback, Serial));
     }
     catch (Exception ex) {
         ExecutorExceptionHandler.HandleException(ex);
         return(new List <R>());
     }
 }
 /**
  * Execute.
  *
  * @param inputGroups input groups
  * @param callback SQL execute callback
  * @param <T> class type of return value
  * @return execute result
  * @throws SQLException SQL exception
  */
 public List <R> Execute <R>(ICollection <InputGroup <CommandExecuteUnit> > inputGroups, SqlExecuteCallback <R> callback)
 {
     return(Execute(inputGroups, null, callback));
 }