コード例 #1
0
        protected virtual IEnumerable <MigrationStatement> Generate(ProcedureOperation operation, string action)
        {
            // we might add support for [LANGUAGE SQL | LANGUAGE JAVA ] via AnonymousArguments

            using (var writer = SqlWriter())
            {
                writer.Write(action);
                writer.Write(" PROCEDURE ");
                writer.Write(Quote(operation.Name));
                writer.Write(" (");
                if (operation.Parameters.Any())
                {
                    writer.WriteLine();
                    writer.Indent++;
                    WriteColumns(writer, operation.Parameters.Select(Generate), true);
                    writer.Indent--;
                    writer.WriteLine();
                }
                writer.Write(")");
                writer.WriteLine();
                writer.Write("AS");
                writer.WriteLine();
                writer.Write(operation.BodySql);
                writer.WriteLine();
                writer.Write("END_PROCEDURE");
                yield return(Statement(writer));
            }
        }
コード例 #2
0
        protected virtual IEnumerable <MigrationStatement> Generate(ProcedureOperation operation, string action)
        {
            using (var writer = SqlWriter())
            {
                var inputParameters  = operation.Parameters.Where(x => !x.IsOutParameter).ToArray();
                var outputParameters = operation.Parameters.Where(x => x.IsOutParameter).ToArray();

                writer.Write(action);
                writer.Write(" PROCEDURE ");
                writer.Write(Quote(CheckName(ExtractName(operation.Name))));
                if (inputParameters.Any())
                {
                    writer.Write(" (");
                    writer.WriteLine();
                    writer.Indent++;
                    WriteColumns(writer, inputParameters.Select(Generate), true);
                    writer.Indent--;
                    writer.WriteLine();
                    writer.Write(")");
                }
                if (outputParameters.Any())
                {
                    writer.WriteLine();
                    writer.Write("RETURNS (");
                    writer.WriteLine();
                    writer.Indent++;
                    WriteColumns(writer, outputParameters.Select(Generate), true);
                    writer.Indent--;
                    writer.WriteLine();
                    writer.Write(")");
                }
                writer.WriteLine();
                writer.WriteLine("AS");
                writer.WriteLine("BEGIN");
                writer.Write(operation.BodySql);
                writer.WriteLine();
                writer.Write("END");
                yield return(Statement(writer));
            }
        }
コード例 #3
0
 private void Generate(ProcedureOperation procedureOperation)
 {
     throw new NotImplementedException();
 }