Example #1
0
 public override void RunCommand()
 {
     using (var fr = new FileInfo(AsmFile).OpenRead())
     {
         var wrap = new AssemblyWrapper(fr.ReadAllBytes(), Path.GetFileNameWithoutExtension(AsmFile));
         var fw   = GetOutputStream();
         var dmp  = MsSqlDialect.Instance.CreateDumper(fw);
         if (!SkipDrop)
         {
             wrap.GenerateDrop(dmp);
         }
         wrap.GenerateCreate(dmp);
         if (!SkipRegister)
         {
             if (!SkipAggr)
             {
                 wrap.GenerateRegisterAggr(dmp);
             }
             if (!SkipFunc)
             {
                 wrap.GenerateRegisterFunc(dmp);
             }
         }
     }
 }
Example #2
0
        public void GenerateRegister(ISqlDumper dmp)
        {
            dmp.Put("^CREATE ^FUNCTION %i (", Attribute.Name ?? Function.Name);
            bool was = false;

            foreach (var arg in Function.GetParameters())
            {
                if (was)
                {
                    dmp.Put(", ");
                }
                dmp.Put("@%s %s", arg.Name, AssemblyWrapper.GetSqlType(arg.ParameterType));
                was = true;
            }
            dmp.Put(") ^RETURNS %s", AssemblyWrapper.GetSqlType(Function.ReturnType));
            dmp.Put(" ^EXTERNAL ^NAME %i.%i.%i", m_wrapper.m_name, Function.DeclaringType.FullName, Function.Name);
            dmp.EndCommand();
        }