Exemple #1
1
        /// <exclude/>
        public Lookup(SerializationInfo serializationInfo, StreamingContext streamingContext)
        {
            int version = 0;

            if (SerializationVersionExists)
            {
                try
                {
                    version = serializationInfo.GetInt32("SerializationVersion");
                }
                catch (SerializationException)
                {
                    // ignore
                    SerializationVersionExists = false;
                }
            }
            _alias = serializationInfo.GetString("Alias");
            _aliasPlural = serializationInfo.GetString("AliasPlural");
            _enabled = serializationInfo.GetBoolean("Enabled");
            _isUserDefined = serializationInfo.GetBoolean("IsUserDefined");
            _name = serializationInfo.GetString("Name");
            _userOptions = (List<IUserOption>)serializationInfo.GetValue("UserOptions", ModelTypes.UserOptionList);
            _description = serializationInfo.GetString("Description");
            _backingObject = (ScriptObject)serializationInfo.GetValue("BackingObject", ModelTypes.ScriptObject);
            _idColumn = (Column)serializationInfo.GetValue("IdColumn", ModelTypes.Column);
            _nameColumn = (Column)serializationInfo.GetValue("NameColumn", ModelTypes.Column);
            _LookupValues = (List<LookupValue>)serializationInfo.GetValue("LookupValues", ModelTypes.LookupValueList);
        }
Exemple #2
0
        private void buttonOk_Click(object sender, EventArgs e)
        {
            for (int i = this.Controls.Count - 1; i >= 0; i--)
            {
                Control control = this.Controls[i];
                control.Focus();
                if (!Validate())
                {
                    DialogResult = DialogResult.None;
                    return;
                }
            }

            if (IsNew)
            {
                _column = new Column(textBoxName.Text, true, _parent, _parent.Columns.Length, checkBoxIsNullable.Checked, comboBoxDataType.Text, Convert.ToInt32(textBoxCharacterMaximumLength.Text), false, false, textBoxDefault.Text, true);
                _column.Alias = textBoxAlias.Text;
                _column.AliasDisplay = textBoxAliasDisplay.Text;
            }
            else
            {
                _column.Name = textBoxName.Text;
                _column.Alias = textBoxAlias.Text;
                _column.AliasDisplay = textBoxAliasDisplay.Text;
                _column.IsNullable = checkBoxIsNullable.Checked;
                _column.DataType = comboBoxDataType.Text;
                _column.CharacterMaximumLength = Convert.ToInt32(textBoxCharacterMaximumLength.Text);
            }
        }
Exemple #3
0
        private void AddFilterColumn(Column column)
        {
            string logicalOperator;

            if (radioButtonFilterAnd.Checked)
            {
                logicalOperator = "And";
            }
            else if (radioButtonFilterOr.Checked)
            {
                logicalOperator = "Or";
            }
            else
            {
                logicalOperator = "";
                radioButtonFilterAnd.Checked = true;
                radioButtonFilterAnd.Enabled = true;
                radioButtonFilterOr.Enabled = true;
            }
            Filter.FilterColumn filterColumn = new Filter.FilterColumn(column, logicalOperator, comboBoxCompareOperator.Text, textBoxFilterColumnAlias.Text);
            ListViewItem item = new ListViewItem(filterColumn.LogicalOperator);
            item.SubItems.Add(filterColumn.Column.Parent.Alias);
            item.SubItems.Add(filterColumn.Column.Alias);
            item.SubItems.Add(filterColumn.Alias);
            item.SubItems.Add(filterColumn.CompareOperator);
            item.Tag = filterColumn;

            listViewColumn.Items.Add(item);

            CheckAbilityToCreateProcedure();

            comboBoxCompareOperator.Text = "";
            textBoxFilterColumnAlias.Text = "";
        }
        /// <exclude/>
        public RestrictedValue(SerializationInfo serializationInfo, StreamingContext streamingContext)
        {
            int version = 0;

            if (SerializationVersionExists)
            {
                try
                {
                    version = serializationInfo.GetInt32("SerializationVersion");
                }
                catch (SerializationException)
                {
                    // ignore
                    SerializationVersionExists = false;
                }
            }
            _alias = serializationInfo.GetString("Alias");
            _aliasPlural = serializationInfo.GetString("AliasPlural");
            _enabled = serializationInfo.GetBoolean("Enabled");
            _isUserDefined = serializationInfo.GetBoolean("IsUserDefined");
            _name = serializationInfo.GetString("Name");
            _userOptions = (List<IUserOption>)serializationInfo.GetValue("UserOptions", ModelTypes.UserOptionList);
            _id = serializationInfo.GetString("Id");
            _description = serializationInfo.GetString("Description");
            _parent = (Column)serializationInfo.GetValue("Parent", ModelTypes.Column);
        }
Exemple #5
0
        public bool IsDataTypeText(Column column)
        {
            switch (column.DataType)
            {
                case "char":
                    return true;

                case "nchar":
                    return true;

                case "ntext":
                    return true;

                case "nvarchar":
                    return true;

                case "text":
                    return true;

                case "varchar":
                    return true;

                default:
                    return false;
            }
        }
Exemple #6
0
        private Model.View GetNewView(SQLDMO.View dmoView)
        {
            Model.View view = new Model.View(dmoView.Name, Script.GetSingluar(dmoView.Name), false);

            // Columns
            int ordinalPosition = 0;
            List<SQLDMO.Column> dmoColumns = new List<SQLDMO.Column>();
            SQLDMO.SQLObjectList sqlObjectList = dmoView.ListColumns();
            foreach (SQLDMO.Column dmoColumn in sqlObjectList)
            {
                dmoColumns.Add(dmoColumn);
            }

            dmoColumns.Sort(new SortComparer<SQLDMO.Column>("ID", System.ComponentModel.ListSortDirection.Ascending));

            foreach (SQLDMO.Column dmoColumn in dmoColumns)
            {
                if (UnsupportedDataTypes.ToLower().IndexOf("'" + dmoColumn.PhysicalDatatype.ToLower() + "'") >= 0)
                {
                    continue;
                }

                Column column = new Column(dmoColumn.Name, Script.GetSingluar(dmoColumn.Name), false, dmoColumn.Name, view, ordinalPosition, dmoColumn.AllowNulls, dmoColumn.PhysicalDatatype, dmoColumn.Length,
                    false, dmoColumn.Identity, dmoColumn.Default, true);
                view.AddColumn(column);
                ordinalPosition++;
            }

            return view;
        }
 public RestrictedValue(string name, bool isUserDefined, Column parent, object id, string description)
     : base(name, isUserDefined)
 {
     _parent = parent;
     _id = id;
     _description = description;
     ResetDefaults();
 }
Exemple #8
0
 public MapColumn(string name, bool isUserDefined, Relationship[] relationshipPath, Column foreignColumn, int ordinalPosition, bool isNullable, string dataType, int characterMaximumLength, int precision, int scale)
     : base(name, isUserDefined, relationshipPath == null ? null : relationshipPath[0].Parent, ordinalPosition, isNullable, dataType, characterMaximumLength, false, false, null, true, false, precision, scale)
 {
     _IsMapColumn = true;
     _currentParent = relationshipPath == null ? null : relationshipPath[0].Parent;
     _foreignColumn = foreignColumn;
     _relationshipPath = relationshipPath;
     ResetDefaults();
 }
Exemple #9
0
 public FormColumn(Column column)
 {
     InitializeComponent();
     BackColor = Slyce.Common.Colors.BackgroundColor;
     _parent = column.Parent;
     _column = column;
     ucHeading1.Text = "";
     Interfaces.Events.ShadeMainForm();
 }
Exemple #10
0
        public FormColumn(Column column)
        {
            InitializeComponent();
            this.BackColor = Slyce.Common.Colors.BackgroundColor;

            _parent = column.Parent;
            _column = column;
            ucHeading1.Text = "";
            Controller.ShadeMainForm();
        }
Exemple #11
0
        public static Column[] GetEnabledColumns(Column[] columns)
        {
            List<Column> enabledColumns = new List<Column>();
            foreach (Column column in columns)
            {
                if (column.Enabled)
                {
                    enabledColumns.Add(column);
                }
            }

            return enabledColumns.ToArray();
        }
Exemple #12
0
        public static int GetAliasCount(Column[] columns, string alias)
        {
            int count = 0;

            foreach (Column column in columns)
            {
                if (column.Alias == alias)
                {
                    count++;
                }
            }
            return count;
        }
Exemple #13
0
        public Relationship(string name, bool isUserDefined, ScriptObject parent, ScriptObject primaryScriptObject, Column[] primaryColumns, ScriptObject foreignScriptObject, Column[] foreignColumns, Filter filter)
            : base(name, isUserDefined)
        {
            _parent = parent;
            _primaryScriptObject = primaryScriptObject;
            _primaryColumns.AddRange(primaryColumns);
            _foreignScriptObject = foreignScriptObject;
            _foreignColumns.AddRange(foreignColumns);
            _filter = filter;

            if (GetType() == typeof(Relationship))
            {
                ResetDefaults();
            }
        }
Exemple #14
0
        public static Column GetColumn(Column[] columns, string name, bool throwException)
        {
            foreach (Column column in columns)
            {
                if (column.Name == name)
                {
                    return column;
                }
            }

            if (throwException)
            {
                throw new Exception("Cannot find column " + name);
            }
            return null;
        }
Exemple #15
0
        private static string GetColumnNameList(Column[] columns)
        {
            string columnList = "";

            if (columns.Length > 1)
            {
                columnList += "(";
            }
            for (int i = 0; i < columns.Length; i++)
            {
                Column column = columns[i];
                columnList += column.Name;

                if (i < columns.Length - 1)
                {
                    columnList += ",";
                }
            }
            if (columns.Length > 1)
            {
                columnList += ")";
            }
            return columnList;
        }
Exemple #16
0
 public void UpdateColumn(int index, Column column)
 {
     Interfaces.Events.RaiseDataChangedEvent(GetType(), (MethodInfo)MethodBase.GetCurrentMethod(), _columns[index], column);
     _columns[index] = column;
 }
Exemple #17
0
 public void RemoveColumn(Column column)
 {
     Interfaces.Events.RaiseDataChangedEvent(GetType(), (MethodInfo)MethodBase.GetCurrentMethod(), column, null);
     _columns.Remove(column);
 }
Exemple #18
0
 public void AddColumn(Column column)
 {
     Interfaces.Events.RaiseDataChangedEvent(GetType(), (MethodInfo)MethodBase.GetCurrentMethod(), null, column);
     _columns.Add(column);
 }
Exemple #19
0
        public static string GetKeyValues2(Column[] columns, bool includeDataType, string prefix)
        {
            string returnString = "";

            for (int i = 0; i < columns.Length; i++)
            {
                Column column = columns[i];

                if (includeDataType)
                    returnString += CSharp.GetDataType(column) + " ";

                if (prefix == "_")
                {
                    returnString += prefix + Script.GetCamelCase(column.Alias);
                }
                else
                {
                    returnString += prefix + column.Alias;
                }

                if (i < columns.Length - 1)
                {
                    returnString += ", ";
                }
            }

            return (returnString);
        }
Exemple #20
0
        public static Column[] GetUserDefinedColumns(Column[] columns)
        {
            List<Column> userDefinedColumns = new List<Column>();
            foreach (Column column in columns)
            {
                if (column.IsUserDefined)
                {
                    userDefinedColumns.Add(column);
                }
            }

            return userDefinedColumns.ToArray();
        }
        public void FillStoredProcedureColumns(Model.StoredProcedure storedProcedure)
        {
            string sql = string.Format("SET FMTONLY ON EXEC [{0}].[{1}] ", storedProcedure.Schema, storedProcedure.Name);

            for (int i = 0; i < storedProcedure.Parameters.Length; i++)
            {
                if (Providers.Database.Helper.SQLServer.IsDataTypeText(storedProcedure.Parameters[i].DataType))
                {
                    sql += "\"0\", ";
                }
                else
                {
                    sql += "0, ";
                }
            }
            sql = sql.TrimEnd(EndChars);
            DataTable dataTable;

            try
            {
                dataTable = RunQueryDataTable(sql);
            }
            catch (Exception ex)
            {
                //ResetConnection();
                sql = sql.Replace("SET FMTONLY ON", "SET FMTONLY OFF");

                try
                {
                    using (System.Transactions.TransactionScope scope = new System.Transactions.TransactionScope(System.Transactions.TransactionScopeOption.RequiresNew))
                    {
                        dataTable = RunQueryDataTable(sql);
                        // We must ALWAYS rollback because we are executing stored procs with FMTONLY = OFF, so just don't call scope.Complete()
                    }
                }
                catch
                {
                    storedProcedure.Errors.Add(string.Format("Error getting returned columns: {0}. SQL: {1}", ex.Message, sql));
                    return;
                }
            }
            while (storedProcedure.Columns.Length > 0)
            {
                storedProcedure.RemoveColumn(storedProcedure.Columns[0]);
            }
            foreach (DataColumn dataColumn in dataTable.Columns)
            {
                Column column = new Column(
                    dataColumn.ColumnName,
                    false,
                    storedProcedure,
                    dataColumn.Ordinal,
                    dataColumn.AllowDBNull,
                    GetSqlDataType(dataColumn.DataType),
                    0,
                    false,
                    dataColumn.AutoIncrement,
                    dataColumn.DefaultValue.ToString(),
                    false,
                    false,
                    0,
                    0);

                if (IsSupported(column))
                {
                    storedProcedure.AddColumn(column);
                }
            }
        }
Exemple #22
0
 public static string GetKeyValueStringWithClass(Column[] columns, string className)
 {
     return CSharp.GetKeyValues(columns, Script.GetCamelCase(className) + ".");
 }
Exemple #23
0
 public static Column GetColumn(Column[] columns, string name)
 {
     return GetColumn(columns, name, true);
 }
Exemple #24
0
        public static string GetKeyValues(Column[] columns, bool includeDataType, string prefix)
        {
            string returnString = "";

            for (int i = 0; i < columns.Length; i++)
            {
                Column column = columns[i];

                if (includeDataType)
                    returnString += CSharp.GetDataType(column) + " ";

                returnString += prefix + column.Alias;

                if (i < columns.Length - 1)
                {
                    returnString += ", ";
                }
            }

            return (returnString);
        }
 public OneToManyRelationship(string name, bool isUserDefined, ScriptObject primaryScriptObject, Column[] primaryColumns, ScriptObject foreignScriptObject, Column[] foreignColumns, Filter filter)
     : base(name, isUserDefined, primaryScriptObject, primaryScriptObject, primaryColumns, foreignScriptObject, foreignColumns, filter)
 {
     ResetDefaults();
 }
Exemple #26
0
 public static string GetKeyValueString(Column[] columns)
 {
     return CSharp.GetKeyValues(columns, false);
 }
Exemple #27
0
        private Model.Table GetNewTable(string tableName)
        {
            ArchAngel.Interfaces.Events.RaiseObjectBeingProcessedEvent(tableName, "Table");
            //_columns = null; // Reset the columns
            //_indexes = null;
            //_dtReferencedColumns = null;
            //return new Model.Table();
            Model.Table table = new Model.Table(tableName, false);

            #region Columns
            DataRow[] columnRows = Columns.Select(string.Format("TABLE_NAME = '{0}'", tableName));

            foreach (DataRow row in columnRows)
            {
                bool isReadOnly = false;

                if (!row.IsNull("IsIdentity") && (int)row["IsIdentity"] == 1)
                {
                    isReadOnly = true;
                }
                else if (!row.IsNull("IsComputed") && (int)row["IsComputed"] == 1)
                {
                    isReadOnly = true;
                }
                else if (Slyce.Common.Utility.StringsAreEqual((string)row["DATA_TYPE"], "timestamp", false))
                {
                    isReadOnly = true;
                }
                // Check whether we have added this column before. Columns are repeated if they are both a PRIMARY_KEY and a FOREIGN_KEY
                Column column = new Column(
                    (string)row["COLUMN_NAME"],
                    false,
                    table,
                    (int)row["ORDINAL_POSITION"],
                    Slyce.Common.Utility.StringsAreEqual((string)row["IS_NULLABLE"], "YES", false),
                    (string)row["DATA_TYPE"],
                    row.IsNull("CHARACTER_MAXIMUM_LENGTH") ? 0 : Convert.ToInt32(row["CHARACTER_MAXIMUM_LENGTH"]),
                    (int)row["InPrimaryKey"] == 1,
                    row.IsNull("IsIdentity") ? false : Convert.ToInt32(row["IsIdentity"]) == 1,
                    row.IsNull("COLUMN_DEFAULT") ? "" : (string)row["COLUMN_DEFAULT"],
                    isReadOnly,
                    row.IsNull("IsComputed") ? false : Convert.ToInt32(row["IsComputed"]) == 1,
                    row.IsNull("NUMERIC_PRECISION") ? 0 : Convert.ToInt32(row["NUMERIC_PRECISION"]),
                    row.IsNull("NUMERIC_SCALE") ? 0 : Convert.ToInt32(row["NUMERIC_SCALE"]));

                table.AddColumn(column);
                //ordinalPosition++;
            }
            #endregion

            #region Indexes

            DataRow[] indexRows = Indexes.Select(string.Format("TABLE_NAME = '{0}'", tableName));
            foreach (DataRow indexRow in indexRows)
            {
                string indexType;
                string indexKeyType = indexRow["CONSTRAINT_TYPE"].ToString();
                if (indexKeyType == "PRIMARY KEY")
                {
                    continue;
                }
                else if (indexKeyType == "FOREIGN KEY")
                {
                    continue;
                }
                else if (indexKeyType == "UNIQUE")
                {
                    continue;
                    //indexType = DatabaseConstant.IndexType.Unique;
                }
                else if (indexKeyType == "CHECK")
                {
                    indexType = DatabaseConstant.IndexType.Check;
                }
                else if (indexKeyType == "NONE")    //TODO check is NONE
                {
                    indexType = DatabaseConstant.IndexType.None;
                }
                else
                {
                    //continue;
                    throw new Exception("IndexType " + indexKeyType + " Not Defined");
                }
                DataRow[] indexColumnRows;// = IndexColumns.Select(string.Format("TABLE_NAME = '{0}' AND CONSTRAINT_NAME  = '{1}'", tableName, indexRow["CONSTRAINT_NAME"]));

                if (indexKeyType == "NONE")
                {
                    indexColumnRows = Columns.Select(string.Format("TABLE_NAME = '{0}' AND COLUMN_NAME  = '{1}'", tableName, indexRow["ColumnName"]));
                }
                else
                {
                    indexColumnRows = IndexColumns.Select(string.Format("TABLE_NAME = '{0}' AND CONSTRAINT_NAME  = '{1}'", tableName, indexRow["CONSTRAINT_NAME"]));
                }
                Index index = new Index(indexRow["CONSTRAINT_NAME"].ToString(), false, indexType, table, (bool)indexRow["IS_UNIQUE"], (bool)indexRow["IS_CLUSTERED"]);

                // Fill Columns
                foreach (DataRow indexColumnRow in indexColumnRows)
                {
                    Column indexColumn = new Column(indexColumnRow["COLUMN_NAME"].ToString(), false);
                    index.AddColumn(indexColumn);
                }
                index.ResetDefaults();
                table.AddIndex(index);
            }

            // Indexes -- that should be keys
            foreach (DataRow keyRow in indexRows)
            {
                string keyType;
                string indexKeyType = keyRow["CONSTRAINT_TYPE"].ToString();
                if (indexKeyType == "PRIMARY KEY")
                {
                    keyType = DatabaseConstant.KeyType.Primary;
                }
                else if (indexKeyType == "FOREIGN KEY")
                {
                    keyType = DatabaseConstant.KeyType.Foreign;
                }
                else if (indexKeyType == "UNIQUE")
                {
                    keyType = DatabaseConstant.KeyType.Unique;
                }
                else if (indexKeyType == "CHECK")
                {
                    continue;
                }
                else if (indexKeyType == "NONE")
                {
                    continue;
                    //keyType = DatabaseConstant.KeyType.None;
                }
                else
                {
                    //continue;
                    throw new Exception("KeyType " + indexKeyType + " Not Defined");
                }
                Key key = new Key(keyRow["CONSTRAINT_NAME"].ToString(), false, keyType, table, false);
                DataRow[] keyColumnRows = IndexColumns.Select(string.Format("TABLE_NAME = '{0}' AND CONSTRAINT_NAME = '{1}'", tableName, keyRow["CONSTRAINT_NAME"]));

                // Fill Columns
                foreach (DataRow keyColumnRow in keyColumnRows)
                {
                    Column keyColumn = new Column(keyColumnRow["COLUMN_NAME"].ToString(), false);
                    keyColumn.DataType = (string)keyColumnRow["DATA_TYPE"];
                    key.AddColumn(keyColumn);
                }

                if (keyType == DatabaseConstant.KeyType.Foreign)
                {
                    DataRow[] keyReferencedColumnRows = IndexReferencedColumns.Select(string.Format("ForeignKey = '{0}'", keyRow["CONSTRAINT_NAME"]));
                    DataRow firstKeyReferencedColumnRow = keyReferencedColumnRows[0];
                    // Fill References
                    key.ReferencedTable = new Model.Table(firstKeyReferencedColumnRow["ReferencedTable"].ToString(), false);

                    //if (dmoKey.ReferencedKey != null)
                    //{
                    key.ReferencedKey = new Key(firstKeyReferencedColumnRow["ReferencedKey"].ToString(), false, true);
                    //}

                    // Fill Referenced Columns
                    foreach (DataRow keyReferencedColumnRow in keyReferencedColumnRows)
                    {
                        Column keyReferencedColumn = new Column(keyReferencedColumnRow["ReferencedColumn"].ToString(), false);
                        key.AddReferencedColumn(keyReferencedColumn);
                    }
                }
                key.ResetDefaults();
                table.AddKey(key);
            }

            #endregion

            //#region Indexes -- that should be keys
            //string prevConstraintName = "";
            //Key key = null;
            //DataRow[] indexRows = DtIndexes.Select(string.Format("TABLE_NAME = '{0}'", tableName));

            //for (int rowCounter = 0; rowCounter < indexRows.Length; rowCounter++)
            //{
            //    DataRow row = indexRows[rowCounter];
            //    for (int colCounter = 0; colCounter < DtIndexes.Columns.Count; colCounter++)
            //    {
            //        string colName = DtIndexes.Columns[colCounter].ColumnName;
            //    }
            //    string keyType;
            //    string indexKeyType = row.IsNull("Constraint_Type") ? "NONE" : (string)row["Constraint_Type"];
            //    string constraintName = row.IsNull("Constraint_Name") ? "" : (string)row["Constraint_Name"];
            //    string columnName = (string)row["COLUMN_NAME"];

            //    if (indexKeyType == "NONE")
            //    {
            //        keyType = DatabaseConstant.KeyType.None;
            //    }
            //    else if (indexKeyType == "PRIMARY KEY")
            //    {
            //        keyType = DatabaseConstant.KeyType.Primary;
            //    }
            //    else if (indexKeyType == "UNIQUE")
            //    {
            //        keyType = DatabaseConstant.KeyType.Unique;
            //    }
            //    else if (indexKeyType == "CHECK") // TODO: was 'None' for SMO
            //    {
            //        keyType = DatabaseConstant.KeyType.None;
            //    }
            //    else if (indexKeyType == "FOREIGN KEY") // TODO: was 'None' for SMO
            //    {
            //        keyType = DatabaseConstant.KeyType.Foreign;
            //    }
            //    else
            //    {
            //        throw new Exception("KeyType " + indexKeyType + " Not Defined");
            //    }
            //    // Create Alias
            //    if (string.Format("{0}{1}", constraintName, keyType) != prevConstraintName)
            //    {
            //        if (key != null)
            //        {
            //            // Reset the alias, because it is based on the Columns collection which has just finished being modified.
            //            key.ResetDefaults();
            //        }
            //        // Create a new Key
            //        key = new Key(constraintName, false, keyType, table, false);
            //        table.AddKey(key);
            //        prevConstraintName = string.Format("{0}{1}", constraintName, keyType);
            //        Column keyColumn = new Column(columnName, false);
            //        key.AddColumn(keyColumn);
            //    }
            //    else
            //    {
            //        // We are processing another column of the same Index as the previous index
            //        Column keyColumn = new Column(columnName, false);
            //        key.AddColumn(keyColumn);
            //    }
            //    if (keyType == DatabaseConstant.KeyType.Foreign)
            //    {
            //        DataRow[] referencedColumnRows = DtReferencedColumns.Select(string.Format("FOREIGN_KEY = '{0}'", key.Name));

            //        foreach (DataRow refColRow in referencedColumnRows)
            //        {
            //            // Fill References
            //            if (key.ReferencedTable == null)
            //            {
            //                string referencedTableName = (string)refColRow["Referenced_Table_Name"];
            //                string referencedKeyName = (string)refColRow["Referenced_Key"];

            //                key.ReferencedTable = new Model.Table(referencedTableName, false);
            //                key.ReferencedKey = new Key(referencedKeyName, false, true);
            //            }
            //            string referencedColumnName = (string)refColRow["Referenced_Column_Name"];

            //            // Fill Referenced Columns
            //            Column referencedKeyColumn = new Column(referencedColumnName, false);
            //            key.AddReferencedColumn(referencedKeyColumn);
            //        }
            //    }
            //    key.ResetDefaults();
            //}
            //#endregion

            return table;
        }
Exemple #28
0
        private Model.View GetNewView(string viewName)
        {
            ArchAngel.Interfaces.Events.RaiseObjectBeingProcessedEvent(viewName, "View");
            //_dtColumns = null;
            Model.View view = new Model.View(viewName, false);

            // Columns
            DataRow[] columnRows = DtColumns.Select(string.Format("TABLE_NAME = '{0}'", viewName));

            foreach (DataRow row in columnRows)
            {
                bool isReadOnly = false;

                if (!row.IsNull("IsIdentity") && (int)row["IsIdentity"] == 1)
                {
                    isReadOnly = true;
                }
                else if (!row.IsNull("IsComputed") && (int)row["IsComputed"] == 1)
                {
                    isReadOnly = true;
                }
                else if (Slyce.Common.Utility.StringsAreEqual((string)row["DATA_TYPE"], "timestamp", false))
                {
                    isReadOnly = true;
                }
                // Check whether we have added this column before. Columns are repeated if they are both a PRIMARY_KEY and a FOREIGN_KEY
                ArchAngel.Providers.Database.Model.Column column = new ArchAngel.Providers.Database.Model.Column(
                    (string)row["COLUMN_NAME"],
                    false,
                    view,
                    (int)row["ORDINAL_POSITION"],
                    Slyce.Common.Utility.StringsAreEqual((string)row["IS_NULLABLE"], "YES", false),
                    (string)row["DATA_TYPE"],
                    row.IsNull("CHARACTER_MAXIMUM_LENGTH") ? 0 : Convert.ToInt32(row["CHARACTER_MAXIMUM_LENGTH"]),
                    (int)row["InPrimaryKey"] == 1,
                    row.IsNull("IsIdentity") ? false : Convert.ToInt32(row["IsIdentity"]) == 1,
                    row.IsNull("COLUMN_DEFAULT") ? "" : (string)row["COLUMN_DEFAULT"],
                    isReadOnly,
                    row.IsNull("IsComputed") ? false : Convert.ToInt32(row["IsComputed"]) == 1,
                    row.IsNull("NUMERIC_PRECISION") ? 0 : Convert.ToInt32(row["NUMERIC_PRECISION"]),
                    row.IsNull("NUMERIC_SCALE") ? 0 : Convert.ToInt32(row["NUMERIC_SCALE"]));

                view.AddColumn(column);
            }
            //smoColumns.Sort(new SortComparer<Microsoft.SqlServer.Management.Smo.Column>("ID", System.ComponentModel.ListSortDirection.Ascending));

            //foreach (Microsoft.SqlServer.Management.Smo.Column smoColumn in smoColumns)
            //{
            //    if (UnsupportedDataTypes.ToLower().IndexOf("'" + smoColumn.DataType.Name.ToLower() + "'") >= 0)
            //    {
            //        continue;
            //    }

            //    Model.Column column = new Model.Column(smoColumn.Name, Script.GetSingular(smoColumn.Name), false, smoColumn.Name, view, ordinalPosition, smoColumn.Nullable, smoColumn.DataType.Name, smoColumn.DataType.MaximumLength,
            //        false, smoColumn.Identity, smoColumn.Default, true);
            //    view.AddColumn(column);
            //    ordinalPosition++;
            //}

            return(view);
        }
Exemple #29
0
 /// <summary>
 /// Lookup for MapColumns - need to compare Alias as well, because multiple MapColumns can link to a single foreign table.
 /// </summary>
 /// <param name="columns"></param>
 /// <param name="name"></param>
 /// <param name="alias"></param>
 /// <returns></returns>
 public static Column GetColumn(Column[] columns, string name, string alias)
 {
     return GetColumn(columns, name, alias, true);
 }
Exemple #30
0
 public static string GetKeyValueStringWithUnderscore(Column[] columns)
 {
     return CSharp.GetKeyValues2(columns, false, "_");
 }
Exemple #31
0
 public static string GetKeyValueStringWithDataType(Column[] columns)
 {
     return CSharp.GetKeyValues(columns, true);
 }