Deveel.Data.Sql.Statements.CallStatement.ExecuteStatement C# (CSharp) Method

ExecuteStatement() protected method

protected ExecuteStatement ( ExecutionContext context ) : void
context ExecutionContext
return void
        protected override void ExecuteStatement(ExecutionContext context)
        {
            var args = Arguments != null ? Arguments.ToArray() : new InvokeArgument[0];
            var invoke = new Invoke(ProcedureName, args);

            var procedure = context.DirectAccess.ResolveProcedure(invoke);
            if (procedure == null)
                throw new StatementException(String.Format("Could not retrieve the procedure '{0}': maybe not a procedure.", ProcedureName));

            //if (!context.User.CanExecuteProcedure(invoke,context.Request))
            //	throw new MissingPrivilegesException(context.User.Name, ProcedureName, Privileges.Execute);

            var result = procedure.Execute(Arguments, context.Request);

            if (result.HasOutputParameters) {
                var output = result.OutputParameters;
                var names = output.Keys.ToArray();
                var values = output.Values.Select(SqlExpression.Constant).Cast<SqlExpression>().ToArray();
                var resultTable = new FunctionTable(values, names, context.Request);
                context.SetResult(resultTable);
            }
        }