コード例 #1
0
        public static string GetAuditScript(TableConfig tableCfg, AuditScriptType type, ConnectionData connData)
        {
            switch (type)
            {
            case AuditScriptType.CreateAuditTable:
                return(AuditHelper.ScriptForAuditTableCreation(tableCfg, connData));

            case AuditScriptType.CreateInsertTrigger:
            case AuditScriptType.CreateUpdateTrigger:
            case AuditScriptType.CreateDeleteTrigger:
                return(AuditHelper.ScriptForAuditTriggers(tableCfg, connData, type, false));

            case AuditScriptType.TriggerDisable:
                return(AuditHelper.ScriptForAuditTriggerEnableDisable(tableCfg.TableName, connData, false));

            case AuditScriptType.TriggerEnable:
                return(AuditHelper.ScriptForAuditTriggerEnableDisable(tableCfg.TableName, connData, true));

            case AuditScriptType.MasterTable:
                return(AuditHelper.ScriptForAuditMasterTable(false));
            }
            return(string.Empty);
        }
コード例 #2
0
        private static string ScriptForAuditTriggers(TableConfig parentTable, ConnectionData connData, AuditScriptType type, bool useDS)
        {
            SqlSync.TableScript.ResourceHelper resHelper = new SqlSync.TableScript.ResourceHelper();

            ColumnInfo[]  columns = SqlSync.DbInformation.InfoHelper.GetColumnNamesWithTypes(parentTable.TableName, connData);
            StringBuilder cols    = new StringBuilder();

            for (int i = 0; i < columns.Length; i++)
            {
                if (columns[i].DataType.ToLower() == "text" || columns[i].DataType.ToLower() == "ntext" || columns[i].DataType.ToLower() == "image")
                {
                    continue;
                }
                cols.AppendFormat("[{0}],", columns[i].ColumnName);
            }
            cols.Length = cols.Length - 1;
            string colList = cols.ToString();

            string auditTableName = String.Format(auditTableNameFormat, parentTable.TableName);
            string schema, parentTableName;

            InfoHelper.ExtractNameAndSchema(auditTableName, out auditTableName, out schema);
            InfoHelper.ExtractNameAndSchema(parentTable.TableName, out parentTableName, out schema);

            StringBuilder sb = new StringBuilder();

            if (type == AuditScriptType.CreateInsertTrigger)
            {
                //Insert Trigger
                if (!useDS)
                {
                    sb.Append(Properties.Resources.AuditInsertTrigger);
                }
                else
                {
                    sb.Append(Properties.Resources.AuditInsertTriggerDS);
                }

                TriggerTemplateReplacements(ref sb, auditTableName, parentTableName, colList, String.Format(triggerNameFormat, parentTableName, "INSERT"), schema);
            }

            //Update Trigger
            if (type == AuditScriptType.CreateUpdateTrigger)
            {
                if (!useDS)
                {
                    sb.Append(Properties.Resources.AuditUpdateTrigger);
                }
                else
                {
                    sb.Append(Properties.Resources.AuditUpdateTriggerDS);
                }

                TriggerTemplateReplacements(ref sb, auditTableName, parentTableName, colList, String.Format(triggerNameFormat, parentTableName, "UPDATE"), schema);
            }

            //Delete Trigger
            if (type == AuditScriptType.CreateDeleteTrigger)
            {
                if (!useDS)
                {
                    sb.Append(Properties.Resources.AuditDeleteTrigger);
                }
                else
                {
                    sb.Append(Properties.Resources.AuditDeleteTriggerDS);
                }

                TriggerTemplateReplacements(ref sb, auditTableName, parentTableName, colList, String.Format(triggerNameFormat, parentTableName, "DELETE"), schema);
            }
            return(sb.ToString());
        }