class Mkxms::Mssql::ClrStoredProcedure

Constants

SQL_OBJECT_TYPE

Attributes

clr_impl[RW]
execute_as[RW]
name[RW]
schema[RW]

Public Class Methods

new(attrs) click to toggle source
# File lib/mkxms/mssql/clr_stored_procedure_handler.rb, line 15
def initialize(attrs)
  @schema = attrs['schema']
  @name = attrs['name']
  @execute_as = attrs['execute-as']
end

Public Instance Methods

param_properties_sql() click to toggle source
# File lib/mkxms/mssql/clr_stored_procedure_handler.rb, line 47
def param_properties_sql
  params.map do |param|
    subitem_extended_properties_sql(param)
  end.flatten
end
procedure_def_sql() click to toggle source
# File lib/mkxms/mssql/clr_stored_procedure_handler.rb, line 28
def procedure_def_sql
  [[].tap do |lines|
    lines << "CREATE PROCEDURE [{filename}]"
    lines << params.map do |param|
      "  #{param.name} #{param.type_spec}".tap do |param_spec|
        param_spec << " = #{param.default_value}" if param.default_value
        param_spec << " OUT" if param.output
      end
    end.join(",\n")
    case execute_as
    when "OWNER"
      lines << "WITH EXECUTE AS OWNER"
    when String
      lines << "WITH EXECUTE AS '#{Utils.unquoted_name execute_as}'"
    end
    lines << "AS EXTERNAL NAME #{clr_impl.full_specifier};"
  end.join("\n")]
end
to_sql() click to toggle source
# File lib/mkxms/mssql/clr_stored_procedure_handler.rb, line 24
def to_sql
  (procedure_def_sql + extended_properties_sql + param_properties_sql).join("\n")
end