Esempio n. 1
0
        public static void ImportProc(IProcedure srcProc, TableDefinitionRow destTab)
        {
            destTab.TableAlias = srcProc.Alias;
            if (srcProc.Description.Length > 0)
                destTab.TableComment = srcProc.Description;
            destTab.DBTableType = "PROCEDURE"; // srcProc.Type.ToString();
            destTab.OriginalName = srcProc.Name; // no guid GetOriginalName(srcProc.Guid, srcProc.Name);

            ImportParameters(srcProc.Parameters, destTab);
            ImportResultColumns(srcProc.ResultColumns, destTab);
        }
Esempio n. 2
0
        public static void ImportTable(ITable srcTab, TableDefinitionDataTable destTabs)
        {
            TableDefinitionRow destTab = destTabs.FindByTableName(srcTab.Name);

            if (destTab == null)
            {
                destTab           = destTabs.NewTableDefinitionRow();
                destTab.TableName = srcTab.Name;
                destTabs.AddTableDefinitionRow(destTab);
            }
            ImportTable(srcTab, destTab);
        }
Esempio n. 3
0
        public static void ImportTable(ITable srcTab, TableDefinitionRow destTab)
        {
            destTab.TableAlias = srcTab.Alias;
            if (srcTab.Description.Length > 0)
            {
                destTab.TableComment = srcTab.Description;
            }
            destTab.DBTableType  = srcTab.Type;
            destTab.OriginalName = GetOriginalName(srcTab.Guid, srcTab.Name);

            ImportFields(srcTab.Columns, destTab);
        }
Esempio n. 4
0
        public static void ImportView(IView srcView, TableDefinitionDataTable destTabs)
        {
            System.Diagnostics.Debug.WriteLine("Import View " + srcView.Name);
            TableDefinitionRow destTab = destTabs.FindByTableName(srcView.Name);

            if (destTab == null)
            {
                destTab           = destTabs.NewTableDefinitionRow();
                destTab.TableName = srcView.Name;
                destTabs.AddTableDefinitionRow(destTab);
            }
            ImportView(srcView, destTab);
        }
Esempio n. 5
0
        public static void ImportProc(IProcedure srcProc, TableDefinitionDataTable destTabs)
        {
            System.Diagnostics.Debug.WriteLine("Import Proc " + srcProc.Name);
            TableDefinitionRow destTab = destTabs.FindByTableName(srcProc.Name);

            if (destTab == null)
            {
                destTab           = destTabs.NewTableDefinitionRow();
                destTab.TableName = srcProc.Name;
                destTabs.AddTableDefinitionRow(destTab);
            }
            ImportProc(srcProc, destTab);
        }
Esempio n. 6
0
        public static void ImportProc(IProcedure srcProc, TableDefinitionRow destTab)
        {
            destTab.TableAlias = srcProc.Alias;
            if (srcProc.Description.Length > 0)
            {
                destTab.TableComment = srcProc.Description;
            }
            destTab.DBTableType  = "PROCEDURE";  // srcProc.Type.ToString();
            destTab.OriginalName = srcProc.Name; // no guid GetOriginalName(srcProc.Guid, srcProc.Name);

            ImportParameters(srcProc.Parameters, destTab);
            ImportResultColumns(srcProc.ResultColumns, destTab);
        }
Esempio n. 7
0
        private void CreateColumns(string tableName, DataTable metaData, String filter)
        {
            TableDefinitionRow tab = GetTable(tableName);

            int ORDINAL_POSITION = 0;

            foreach (FieldDefinitionRow c in tab.GetFieldDefinitionRows())
            {
                if ((filter == null) || (c.DBFieldType.ToUpper().IndexOf(filter) >= 0))
                {
                    DataRow row = metaData.NewRow();
                    metaData.Rows.Add(row);

                    set(row, "TABLE_NAME", tab.TableName);
                    setAndCreate(row, "COLUMN_NAME", c.FieldName);
                    set(row, "ORDINAL_POSITION", ORDINAL_POSITION++);
                    set(row, "IS_NULLABLE", c.AllowDBNull);
                    set(row, "COLUMN_HASDEFAULT", (c.DefaultValue.Length > 0));
                    set(row, "COLUMN_DEFAULT", c.DefaultValue);
                    set(row, "IS_AUTO_KEY", c.AutoIncrement);
                    set(row, "AUTO_KEY_SEED", c.AutoIncrementSeed);
                    set(row, "AUTO_KEY_INCREMENT", c.AutoIncrementStep);

                    set(row, "TYPE_NAME", c.DataType);
                    // set(row,"TYPE_NAME_COMPLETE",GetDbDataTypeName(c)); //  .DataType);
                    SetDbDataTypeName(c, row); //  .DataType);

                    set(row, "NUMERIC_PRECISION", 0);
                    set(row, "NUMERIC_SCALE", 0);
                    set(row, "CHARACTER_MAXIMUM_LENGTH", c.GetDataTypStringLen());
                    set(row, "CHARACTER_OCTET_LENGTH", c.GetDataTypStringLen());
                    set(row, "DESCRIPTION", c.FieldComment);

                    // different names for ProcedureParameter instead of COLUMN
                    set(row, "PROCEDURE_NAME", tab.TableName);
                    set(row, "PARAMETER_NAME", c.FieldName);
                    set(row, "PARAMETER_HASDEFAULT", (c.DefaultValue.Length > 0));
                    set(row, "PARAMETER_DEFAULT", c.DefaultValue);
                    // PARAMETER_TYPE

                    // different names for ResultColumn instead of COLUMN
                    set(row, "NAME", c.FieldName);
                }
            }
        }
Esempio n. 8
0
        List <string> IMyMetaPlugin.GetPrimaryKeyColumns(string databaseName, string tableName)
        {
            TraceContext("GetPrimaryKeyColumns: tab=" + tableName);
            List <string> primaryKeys = new List <string>();
            SchemaXsd3bEx db          = null;

            try
            {
                db = Xsd3b;
                TableDefinitionRow tab = GetTable(tableName);
                foreach (FieldDefinitionRow c in tab.GetPKs())
                {
                    primaryKeys.Add(c.FieldName);
                }
            }
            finally
            {
            }

            return(primaryKeys);
        }
Esempio n. 9
0
        private void CreateIndexesFromPKs(DataTable destMetaData, TableDefinitionRow srcTab)
        {
            int ordinal = 1;

            foreach (FieldDefinitionRow field in srcTab.GetPKs())
            {
                DataRow row = destMetaData.NewRow();
                destMetaData.Rows.Add(row);

                // <Indexes TABLE_NAME="Customers" INDEX_NAME="PrimaryKey"
                //      PRIMARY_KEY="true" UNIQUE="true" CLUSTERED="false" TYPE="1" FILL_FACTOR="100" INITIAL_SIZE="4096" NULLS="1" SORT_BOOKMARKS="false" AUTO_UPDATE="true" NULL_COLLATION="4"
                //      ORDINAL_POSITION="1" COLUMN_NAME="CustomerID" COLLATION="1" CARDINALITY="97" PAGES="1" INTEGRATED="true" />
                set(row, "TABLE_CATALOG", DBNull.Value);
                set(row, "TABLE_SCHEMA", DBNull.Value);
                set(row, "TABLE_NAME", srcTab.TableName);
                set(row, "INDEX_CATALOG", DBNull.Value);
                set(row, "INDEX_NAME", "PrimaryKey");
                set(row, "PRIMARY_KEY", true);
                set(row, "UNIQUE", true);
                set(row, "ORDINAL_POSITION", ordinal++);
                set(row, "COLUMN_NAME", field.FieldName);
            }
        }
Esempio n. 10
0
        public static void ImportTable(ITable srcTab, TableDefinitionRow destTab)
        {
            destTab.TableAlias = srcTab.Alias;
            if (srcTab.Description.Length > 0)
                destTab.TableComment = srcTab.Description;
            destTab.DBTableType = srcTab.Type;
            destTab.OriginalName = GetOriginalName(srcTab.Guid,srcTab.Name);

            ImportFields(srcTab.Columns, destTab);
        }
Esempio n. 11
0
        private TableDefinitionRow GetTable(string tableName)
        {
            TableDefinitionRow tab = Xsd3b.TableDefinition.FindByTableName(tableName);

            return(tab);
        }
Esempio n. 12
0
 public static void ImportFields(IColumns srcColumns, TableDefinitionRow destTab)
 {
     nextPkNumber = 1;
     foreach(IColumn srcCol in srcColumns)
         ImportField(srcCol, destTab);
 }
Esempio n. 13
0
        public static void ImportField(IColumn srcCol, TableDefinitionRow destTab)
        {
            DataTypeDefinitionRow dataType = GetType(srcCol, destTab.Table.DataSet.DataTypeDefinition);

            FieldDefinitionRow destField = destTab.FindFieldByAliasOrName(srcCol.Name); // destTab.Table.DataSet.FieldDefinition destTabs.FindByTableName(srcTab.Name);

            if (destField == null)
            {
                destField = destTab.FindFieldByAliasOrName(srcCol.Alias);
            }
            if (destField == null)
            {
                destField = destTab.AddFieldDefinitionRow(srcCol.Name, dataType.DataTypeName);
            }
            else
            {
                destField.DataTypeDefinitionRow = dataType;
            }

            // destField.DBFieldType = "TAB_FIELD"; // default value
            destField.FieldAlias = srcCol.Alias;
            if (srcCol.Description.Length > 0)
            {
                destField.FieldComment = srcCol.Description;
            }
            destField.AllowDBNull   = srcCol.IsNullable;
            destField.AutoIncrement = srcCol.IsAutoKey;
            if (srcCol.IsAutoKey)
            {
                destField.AutoIncrementSeed = srcCol.AutoKeySeed;
                destField.AutoIncrementStep = srcCol.AutoKeyIncrement;
            }
            System.Diagnostics.Debug.WriteLine(string.Format(
                                                   "FeldName={4}.{3}, DataTypeName={0}, DataTypeNameComplete={1}, DbTargetType={2}"
                                                   , srcCol.DataTypeName
                                                   , srcCol.DataTypeNameComplete
                                                   , srcCol.DbTargetType
                                                   , srcCol.Name
                                                   , destTab.TableName));

            /* destField.DataType = ???;
             * srcCol.DataType; // int
             * srcCol.DataTypeName;
             * srcCol.DataTypeNameComplete;
             * srcCol.DbTargetType;
             */


            // srcCol.ForeignKeys;
            if (srcCol.HasDefault)
            {
                destField.DefaultValue = srcCol.Default;
            }
            else
            {
                destField.SetDefaultValueNull();
            }
            destField.OriginalName = GetOriginalName(srcCol.Guid, srcCol.Name);
            destField.ReadOnly     = srcCol.IsComputed; //  || srcCol.???
            // destField.StringSize = srcCol.CharacterMaxLength; moved to DataTypeDefinition
            destField.Unique = srcCol.IsAutoKey;        // || ??? the only PK or the only FK
            if (srcCol.IsInPrimaryKey)
            {
                if (srcCol.Ordinal > 0)
                {
                    destField.PrimaryKeyNumber = srcCol.Ordinal;
                }
                else
                {
                    destField.PrimaryKeyNumber = nextPkNumber++;
                }
            }

            /** unsupported properties
             * destField.FieldExpression = srcCol.???
             * destField.NullValue = srcCol.??? // nullvaluereplacement
             * destField.XmlFieldType = ???; // default is Attribute
             *
             * // srcCol.AllProperties;
             * srcCol.CharacterOctetLength;
             * srcCol.CharacterSetCatalog;
             * srcCol.CharacterSetName;
             * srcCol.CharacterSetSchema;
             * srcCol.CompFlags;
             * srcCol.Flags;
             * srcCol.GlobalProperties;
             *
             * srcCol.DateTimePrecision; // int
             * srcCol.HasDomain;
             * srcCol.Domain; // IDomain
             * srcCol.DomainCatalog;
             * srcCol.DomainName;
             * srcCol.DomainSchema;
             * srcCol.LanguageType;
             * srcCol.LCID;
             * srcCol.NumericPrecision;
             * srcCol.NumericScale;
             * srcCol.Ordinal;
             * srcCol.Properties;
             * srcCol.PropID;
             * srcCol.SortID;
             * srcCol.TDSCollation;
             * srcCol.TypeGuid;
             * srcCol.UserDataXPath;
             *
             */
        }
Esempio n. 14
0
        public static void ImportField(IColumn srcCol, TableDefinitionRow destTab)
        {
            DataTypeDefinitionRow dataType = GetType(srcCol, destTab.Table.DataSet.DataTypeDefinition);

            FieldDefinitionRow destField = destTab.FindFieldByAliasOrName(srcCol.Name); // destTab.Table.DataSet.FieldDefinition destTabs.FindByTableName(srcTab.Name);

            if (destField == null)
                destField = destTab.FindFieldByAliasOrName(srcCol.Alias);
            if (destField == null)
            {
                destField = destTab.AddFieldDefinitionRow(srcCol.Name, dataType.DataTypeName);
            }
            else
            {
                destField.DataTypeDefinitionRow = dataType;
            }

            // destField.DBFieldType = "TAB_FIELD"; // default value
            destField.FieldAlias = srcCol.Alias;
            if (srcCol.Description.Length > 0)
                destField.FieldComment = srcCol.Description;
            destField.AllowDBNull = srcCol.IsNullable;
            destField.AutoIncrement = srcCol.IsAutoKey;
            if (srcCol.IsAutoKey)
            {
                destField.AutoIncrementSeed = srcCol.AutoKeySeed;
                destField.AutoIncrementStep = srcCol.AutoKeyIncrement;
            }
            System.Diagnostics.Debug.WriteLine(string.Format(
                "FeldName={4}.{3}, DataTypeName={0}, DataTypeNameComplete={1}, DbTargetType={2}"
                , srcCol.DataTypeName
                , srcCol.DataTypeNameComplete
                , srcCol.DbTargetType
                , srcCol.Name
                , destTab.TableName));
            /* destField.DataType = ???;
            srcCol.DataType; // int
            srcCol.DataTypeName;
            srcCol.DataTypeNameComplete;
            srcCol.DbTargetType;
             */


            // srcCol.ForeignKeys;
            if (srcCol.HasDefault)
                destField.DefaultValue = srcCol.Default;
            else
                destField.SetDefaultValueNull();
            destField.OriginalName = GetOriginalName(srcCol.Guid, srcCol.Name);
            destField.ReadOnly = srcCol.IsComputed; //  || srcCol.???
            // destField.StringSize = srcCol.CharacterMaxLength; moved to DataTypeDefinition
            destField.Unique = srcCol.IsAutoKey; // || ??? the only PK or the only FK
            if (srcCol.IsInPrimaryKey)
            {
                if (srcCol.Ordinal > 0)
                    destField.PrimaryKeyNumber = srcCol.Ordinal;
                else
                    destField.PrimaryKeyNumber = nextPkNumber++;
            }

            /** unsupported properties
            destField.FieldExpression = srcCol.???
            destField.NullValue = srcCol.??? // nullvaluereplacement
            destField.XmlFieldType = ???; // default is Attribute

            // srcCol.AllProperties;
            srcCol.CharacterOctetLength;
            srcCol.CharacterSetCatalog;
            srcCol.CharacterSetName;
            srcCol.CharacterSetSchema;
            srcCol.CompFlags;
            srcCol.Flags;
            srcCol.GlobalProperties;

            srcCol.DateTimePrecision; // int
            srcCol.HasDomain;
            srcCol.Domain; // IDomain
            srcCol.DomainCatalog;
            srcCol.DomainName;
            srcCol.DomainSchema;
            srcCol.LanguageType;
            srcCol.LCID;
            srcCol.NumericPrecision;
            srcCol.NumericScale;
            srcCol.Ordinal;
            srcCol.Properties;
            srcCol.PropID;
            srcCol.SortID;
            srcCol.TDSCollation;
            srcCol.TypeGuid;
            srcCol.UserDataXPath;

*/

        }
Esempio n. 15
0
 public static void ImportParameters(IParameters srcParameters, TableDefinitionRow destTab)
 {
     nextPkNumber = 1;
     foreach (IParameter srcCol in srcParameters)
         ImportParameter(srcCol, destTab);
 }
Esempio n. 16
0
        public static void ImportResultColumn(IResultColumn srcCol, TableDefinitionRow destTab)
        {
            DataTypeDefinitionRow dataType = GetType(srcCol, destTab.Table.DataSet.DataTypeDefinition);

            FieldDefinitionRow destField = destTab.FindFieldByAliasOrName(srcCol.Name); // destTab.Table.DataSet.FieldDefinition destTabs.FindByTableName(srcTab.Name);

            if (destField == null)
            {
                destField = destTab.FindFieldByAliasOrName(srcCol.Alias);
            }
            if (destField == null)
            {
                destField = destTab.AddFieldDefinitionRow(srcCol.Name, dataType.DataTypeName);
            }
            else
            {
                destField.DataTypeDefinitionRow = dataType;
            }

            destField.DBFieldType = "PROC_RETURN";
            // destField.ReadOnly = true;

            //Exception on accessing srcCol.Alias
            destField.FieldAlias = srcCol.Alias;

            System.Diagnostics.Debug.WriteLine(string.Format(
                                                   "FeldName={4}.{3}, DataTypeName={0}, DataTypeNameComplete={1}, DbTargetType={2}"
                                                   , srcCol.DataTypeName
                                                   , srcCol.DataTypeNameComplete
                                                   , srcCol.DbTargetType
                                                   , srcCol.Name
                                                   , destTab.TableName));

            /* destField.DataType = ???;
             * srcCol.DataType; // int
             * srcCol.DataTypeName;
             * srcCol.DataTypeNameComplete;
             * srcCol.DbTargetType;
             */


            destField.SetDefaultValueNull();
            destField.OriginalName = srcCol.Name;

            /** unsupported properties
             * destField.FieldExpression = srcCol.???
             * destField.NullValue = srcCol.??? // nullvaluereplacement
             * destField.XmlFieldType = ???; // default is Attribute
             *
             * // srcCol.AllProperties;
             * srcCol.CharacterOctetLength;
             * srcCol.CharacterSetCatalog;
             * srcCol.CharacterSetName;
             * srcCol.CharacterSetSchema;
             * srcCol.CompFlags;
             * srcCol.Flags;
             * srcCol.GlobalProperties;
             *
             * srcCol.DateTimePrecision; // int
             * srcCol.HasDomain;
             * srcCol.Domain; // IDomain
             * srcCol.DomainCatalog;
             * srcCol.DomainName;
             * srcCol.DomainSchema;
             * srcCol.LanguageType;
             * srcCol.LCID;
             * srcCol.NumericPrecision;
             * srcCol.NumericScale;
             * srcCol.Ordinal;
             * srcCol.Properties;
             * srcCol.PropID;
             * srcCol.SortID;
             * srcCol.TDSCollation;
             * srcCol.TypeGuid;
             * srcCol.UserDataXPath;
             *
             */
        }
Esempio n. 17
0
        public static void ImportResultColumn(IResultColumn srcCol, TableDefinitionRow destTab)
        {
            DataTypeDefinitionRow dataType = GetType(srcCol, destTab.Table.DataSet.DataTypeDefinition);

            FieldDefinitionRow destField = destTab.FindFieldByAliasOrName(srcCol.Name); // destTab.Table.DataSet.FieldDefinition destTabs.FindByTableName(srcTab.Name);
            
            if (destField == null)
                destField = destTab.FindFieldByAliasOrName(srcCol.Alias);
            if (destField == null)
            {
                destField = destTab.AddFieldDefinitionRow(srcCol.Name, dataType.DataTypeName);
            }
            else
            {
                destField.DataTypeDefinitionRow = dataType;
            }

            destField.DBFieldType = "PROC_RETURN";
            // destField.ReadOnly = true;

            //Exception on accessing srcCol.Alias
            destField.FieldAlias = srcCol.Alias;

            System.Diagnostics.Debug.WriteLine(string.Format(
                "FeldName={4}.{3}, DataTypeName={0}, DataTypeNameComplete={1}, DbTargetType={2}"
                , srcCol.DataTypeName
                , srcCol.DataTypeNameComplete
                , srcCol.DbTargetType
                , srcCol.Name
                , destTab.TableName));
            /* destField.DataType = ???;
            srcCol.DataType; // int
            srcCol.DataTypeName;
            srcCol.DataTypeNameComplete;
            srcCol.DbTargetType;
             */


            destField.SetDefaultValueNull();
            destField.OriginalName = srcCol.Name;

            /** unsupported properties
            destField.FieldExpression = srcCol.???
            destField.NullValue = srcCol.??? // nullvaluereplacement
            destField.XmlFieldType = ???; // default is Attribute

            // srcCol.AllProperties;
            srcCol.CharacterOctetLength;
            srcCol.CharacterSetCatalog;
            srcCol.CharacterSetName;
            srcCol.CharacterSetSchema;
            srcCol.CompFlags;
            srcCol.Flags;
            srcCol.GlobalProperties;

            srcCol.DateTimePrecision; // int
            srcCol.HasDomain;
            srcCol.Domain; // IDomain
            srcCol.DomainCatalog;
            srcCol.DomainName;
            srcCol.DomainSchema;
            srcCol.LanguageType;
            srcCol.LCID;
            srcCol.NumericPrecision;
            srcCol.NumericScale;
            srcCol.Ordinal;
            srcCol.Properties;
            srcCol.PropID;
            srcCol.SortID;
            srcCol.TDSCollation;
            srcCol.TypeGuid;
            srcCol.UserDataXPath;

*/

        }
Esempio n. 18
0
        private void CreateIndexesFromRelations(DataTable metaData, TableDefinitionRow tab)
        {
            foreach (RelationDefinitionRow rel in tab.GetChildRelationDefinitionRows())
            {
                int ordinal = 1;
                foreach (FieldRelationDefinitionRow f in rel.GetFieldRelationDefinitionRows())
                {
                    DataRow row = metaData.NewRow();
                    metaData.Rows.Add(row);

                    // <Indexes TABLE_NAME="Customers" INDEX_NAME="City" 
                    //      PRIMARY_KEY="false" UNIQUE="false" CLUSTERED="false" 
                    //      TYPE="1" FILL_FACTOR="100" INITIAL_SIZE="4096" 
                    //      NULLS="0" SORT_BOOKMARKS="false" AUTO_UPDATE="true" 
                    //      NULL_COLLATION="4" ORDINAL_POSITION="1" COLUMN_NAME="City" 
                    //      COLLATION="1" CARDINALITY="69" PAGES="1" INTEGRATED="true" />                        
                    set(row, "TABLE_CATALOG", DBNull.Value); // GetDatabaseName();
                    set(row, "TABLE_SCHEMA", DBNull.Value);
                    set(row, "TABLE_NAME", tab.TableName);
                    set(row, "INDEX_CATALOG", DBNull.Value);
                    set(row, "INDEX_NAME", rel.RelationName);

                    set(row, "PRIMARY_KEY", false);
                    set(row, "UNIQUE", false);
                    set(row, "ORDINAL_POSITION", ordinal++);
                    set(row, "COLUMN_NAME", f.ParentFieldName);

                    set(row, "DESCRIPTION", rel.RelationComment);
                }
            }
        }
Esempio n. 19
0
        private void CreateIndexesFromPKs(DataTable destMetaData, TableDefinitionRow srcTab)
        {
            int ordinal = 1;
            foreach (FieldDefinitionRow field in srcTab.GetPKs())
            {
                DataRow row = destMetaData.NewRow();
                destMetaData.Rows.Add(row);

                // <Indexes TABLE_NAME="Customers" INDEX_NAME="PrimaryKey" 
                //      PRIMARY_KEY="true" UNIQUE="true" CLUSTERED="false" TYPE="1" FILL_FACTOR="100" INITIAL_SIZE="4096" NULLS="1" SORT_BOOKMARKS="false" AUTO_UPDATE="true" NULL_COLLATION="4" 
                //      ORDINAL_POSITION="1" COLUMN_NAME="CustomerID" COLLATION="1" CARDINALITY="97" PAGES="1" INTEGRATED="true" />
                set(row, "TABLE_CATALOG", DBNull.Value);
                set(row, "TABLE_SCHEMA", DBNull.Value);
                set(row, "TABLE_NAME", srcTab.TableName);
                set(row, "INDEX_CATALOG", DBNull.Value);
                set(row, "INDEX_NAME", "PrimaryKey");
                set(row, "PRIMARY_KEY", true);
                set(row, "UNIQUE", true);
                set(row, "ORDINAL_POSITION", ordinal++);
                set(row, "COLUMN_NAME", field.FieldName);
            }
        }
Esempio n. 20
0
 public static void ImportResultColumns(IResultColumns srcResultColumns, TableDefinitionRow destTab)
 {
     nextPkNumber = 1;
     foreach (IResultColumn srcCol in srcResultColumns)
         ImportResultColumn(srcCol, destTab);
 }