Beispiel #1
0
        protected ScripterBase(ICollection objects, DatabaseObjectType objectType)
        {
            ObjectType = objectType;
            Objects = objects;
            OutputFolder = Path.Combine(Program.Options.OutputDirectory, objectType.ToString());

            Filter = new Regex(Program.Options.Filter, RegexOptions.Compiled | RegexOptions.IgnoreCase);

            ScriptOptionsDrop = new ScriptingOptions
                                    {
                                        ScriptDrops = true,
                                        IncludeIfNotExists = true,
                                        AllowSystemObjects = false,
                                        NoCommandTerminator = false,
                                        AgentJobId = false,
                                        Statistics = false,
                                        ContinueScriptingOnError = true
                                    };

            ScriptOptionsCreate = new ScriptingOptions
                                      {
                                          ScriptDrops = false,
                                          SchemaQualify = true,
                                          AllowSystemObjects = false,
                                          NoCommandTerminator = false,
                                          ContinueScriptingOnError = true
                                      };

            lock (SyncRoot)
            {
                if (OutputFolder.IndexOf("\\", System.StringComparison.Ordinal) > -1 && !Directory.Exists(OutputFolder))
                    Directory.CreateDirectory(OutputFolder);
            }
        }
 public List<string> this[DatabaseObjectType type]
 {
     get
     {
         switch (type)
         {
             case DatabaseObjectType.Table:
                 return TableFilter;
             case DatabaseObjectType.View:
                 return ViewFilter;
             case DatabaseObjectType.StoredProcedure:
                 return StoredProcedureFilter;
             case DatabaseObjectType.Function:
                 return FunctionFilter;
             case DatabaseObjectType.Trigger:
                 return TriggerFilter;
         }
         throw new Exception("DBSH-00139 Invalid database object type:" + type.ToString());
     }
 }
Beispiel #3
0
        public string GetTemplateContent(DatabaseObjectType databaseObjectType, ScriptAction scriptAction)
        {
            string scriptTypeName   = databaseObjectType.ToString();
            string scriptTypeFolder = Path.Combine(TemplateFolder, scriptTypeName);

            string scriptTemplateFilePath = Path.Combine(scriptTypeFolder, this.dbInterpreter.DatabaseType.ToString() + commonTemplateFileExtension);

            if (!File.Exists(scriptTemplateFilePath))
            {
                scriptTemplateFilePath = Path.Combine(scriptTypeFolder, commonTemplateFileName + commonTemplateFileExtension);
            }

            if (!File.Exists(scriptTemplateFilePath))
            {
                return(string.Empty);
            }

            string templateContent = File.ReadAllText(scriptTemplateFilePath);

            templateContent = this.ReplaceTemplatePlaceHolders(templateContent, databaseObjectType, scriptAction);

            return(templateContent);
        }
Beispiel #4
0
        public List <string> this[DatabaseObjectType type]
        {
            get
            {
                switch (type)
                {
                case DatabaseObjectType.Table:
                    return(TableFilter);

                case DatabaseObjectType.View:
                    return(ViewFilter);

                case DatabaseObjectType.StoredProcedure:
                    return(StoredProcedureFilter);

                case DatabaseObjectType.Function:
                    return(FunctionFilter);

                case DatabaseObjectType.Trigger:
                    return(TriggerFilter);
                }
                throw new Exception("DBSH-00139 Invalid database object type:" + type.ToString());
            }
        }
Beispiel #5
0
        private string ReplaceTemplatePlaceHolders(string templateContent, DatabaseObjectType databaseObjectType, ScriptAction scriptAction)
        {
            templateContent = templateContent.Replace("$ACTION$", scriptAction.ToString())
                              .Replace("$NAME$", this.dbInterpreter.GetQuotedString($"{databaseObjectType.ToString().ToUpper()}_NAME"))
                              .Replace("$TABLE_NAME$", this.dbInterpreter.GetQuotedString($"TABLE_NAME"));

            return(templateContent);
        }
Beispiel #6
0
        private string GetObjectTypeName(
            DatabaseObjectType objectType
            )
        {
            switch (objectType)
            {
            case DatabaseObjectType.StoredProcedure:
                return("PROCEDURE");

            case DatabaseObjectType.View:
                return("VIEW");

            case DatabaseObjectType.PrimaryKey:
                return("CONSTRAINT");

            case DatabaseObjectType.ForeignKey:
                return("CONSTRAINT");

            default:
                throw new ApplicationException("GetObjectTypeName: Unhandled Type - " + objectType.ToString());
            }
        }
Beispiel #7
0
 public static string GetFolderNameByDbObjectType(DatabaseObjectType databaseObjectType)
 {
     return(ManagerUtil.GetPluralString(databaseObjectType.ToString()));
 }