Пример #1
0
        DataTable IMyMetaPlugin.GetProcedures(string databaseName)
        {
            TraceContext("GetProcedures: db=" + databaseName);
            DataTable     metaData = new DataTable();
            SchemaXsd3bEx db       = null;

            try
            {
                metaData = context.CreateProceduresDataTable();

                db = Xsd3b;
                foreach (TableDefinitionRow tab in db.TableDefinition)
                {
                    if (tab.DBTableType.ToUpper().IndexOf("PROC") >= 0) // PROCEDURE, SYSTEM PROCEDURE
                    {
                        DataRow row = metaData.NewRow();
                        metaData.Rows.Add(row);

                        set(row, "PROCEDURE_NAME", tab.TableName);
                        set(row, "DESCRIPTION", tab.TableComment);
                    }
                }
            }
            finally
            {
            }
            metaData.TableName = "GetProcedures";
            TraceTable("GetProcedures-" + databaseName, metaData);

            return(metaData);
        }
Пример #2
0
 public static void ImportViews(IDatabase srcDb, SchemaXsd3bEx destSet)
 {
     foreach (IView srcView in srcDb.Views)
     {
         ImportView(srcView, destSet.TableDefinition);
     }
 }
Пример #3
0
        public static String GetXml(IDatabase srcDb)
        {
            SchemaXsd3bEx destSet = SchemaXsd3bEx.CreateNewSchemaXsd3b();

            Import(srcDb, destSet);
            return(destSet.GetXml());
        }
Пример #4
0
 public static void ImportTables(IDatabase srcDb, SchemaXsd3bEx destSet)
 {
     foreach (ITable srcTab in srcDb.Tables)
     {
         ImportTable(srcTab, destSet.TableDefinition);
     }
 }
Пример #5
0
 public static void ImportProcs(IDatabase srcDb, SchemaXsd3bEx destSet)
 {
     foreach (IProcedure srcProc in srcDb.Procedures)
     {
         ImportProc(srcProc, destSet.TableDefinition);
     }
 }
Пример #6
0
        /// <summary>
        /// opening a connection might take a long time
        /// opening a 2.3 MB umlfile with 86 tables requires 87 Seconds on a 2GHz pc with 768MB ram
        ///
        /// therefor the connection opens it only once until either
        /// - the connectionstring changes
        /// - the file modificationdate changes
        /// </summary>
        private static SchemaXsd3bEx getXsd3b(string connectionString)
        {
            return(SchemaXsd3bEx.ReadXsd3b(connectionString, null));

            /* feature not completed yet, disabled
             *  if (connectionString != null)
             *  {
             *      ListDictionary parms = PlugInSupport.GetConnectParameters(connectionString);
             *      String fileName = parms[PlugInSupport.CONNECT_FILENAME].ToString();
             *
             *      if ((lastXsd3b == null)
             || (connectionString.CompareTo(lastConnectString) != 0)
             || (lastModified != System.IO.File.GetLastWriteTime(fileName)))
             ||     {
             ||         string tempDir = Path.Combine(Environment.GetEnvironmentVariable("temp"), "tmpLastLoaded.xsd3b");
             ||
             ||         // hier gehts weiter
             ||
             ||         lastXsd3b = null; // reset if there is a exception in ReadXsd3b
             ||         lastXsd3b = SchemaXsd3bEx.ReadXsd3b(connectionString, null);
             ||         lastModified = System.IO.File.GetLastWriteTime(fileName);
             ||         lastConnectString = connectionString;
             ||     }
             || }
             || return lastXsd3b;
             */
        }
Пример #7
0
        DataTable IMyMetaPlugin.GetForeignKeys(string databaseName, string tableName)
        {
            TraceContext("GetForeignKeys: tab=" + tableName);
            DataTable     metaData = new DataTable();
            SchemaXsd3bEx db       = null;

            try
            {
                metaData = context.CreateForeignKeysDataTable();

                db = Xsd3b;
                TableDefinitionRow tab = GetTable(tableName);

                // FKs = tab.GetParentRelationDefinitionRows().GetFieldRelationDefinitionRows().
                foreach (RelationDefinitionRow rel in tab.GetParentRelationDefinitionRows())
                {
                    AddForeignKey(metaData, rel);
                }

                // bugfix 20071022 MyGen always have both parent-child and child-parent as FK
                foreach (RelationDefinitionRow rel in tab.GetChildRelationDefinitionRows())
                {
                    AddForeignKey(metaData, rel);
                }
            }
            finally
            {
            }
            metaData.TableName = "GetForeignKeys";
            TraceTable("GetForeignKeys-" + databaseName, metaData);

            return(metaData);
        }
Пример #8
0
        DataTable IMyMetaPlugin.GetTableIndexes(string databaseName, string tableName)
        {
            TraceContext("GetTableIndexes: tab=" + tableName);
            DataTable     metaData = new DataTable();
            SchemaXsd3bEx db       = null;

            try
            {
                metaData = context.CreateIndexesDataTable();

                db = Xsd3b;
                TableDefinitionRow tab = GetTable(tableName);

                CreateIndexesFromPKs(metaData, tab);

                CreateIndexesFromRelations(metaData, tab);
            }
            finally
            {
            }
            metaData.TableName = "GetTableIndexes";
            TraceTable("GetTableIndexes-" + databaseName, metaData);

            return(metaData);
        }
Пример #9
0
        public static void ImportDatabaseInfos(IDatabase srcDb, SchemaXsd3bEx destSet)
        {
            SchemaDefinitionRow destDb = destSet.GetSchemaDefinitionRow();

            if (srcDb.Description.Length > 0)
                destDb.SchemaComment = srcDb.Description;
            destDb.SchemaAlias = srcDb.Alias;
            destDb.SchemaID = (srcDb.SchemaName.Length > 0) ? srcDb.SchemaName : srcDb.Name;
        }
Пример #10
0
 public static void Import(IDatabase srcDb, SchemaXsd3bEx destSet)
 {
     ImportDatabaseInfos(srcDb, destSet);
     ImportTables(srcDb, destSet);
     ImportProcs(srcDb, destSet);
     ImportViews(srcDb, destSet);
     ImportRelations(srcDb, destSet);
     System.Diagnostics.Trace.WriteLine(destSet.GetXml());
 }
Пример #11
0
        public static void ImportRelations(IDatabase srcDb, SchemaXsd3bEx destSet)
        {
            TableDefinitionDataTable destTabs = destSet.TableDefinition;

            foreach (ITable srcTab in srcDb.Tables)
            {
                ImportChildRelations(srcTab, destTabs);
            }
        }
Пример #12
0
 public static void Import(IDatabase srcDb, SchemaXsd3bEx destSet)
 {
     ImportDatabaseInfos(srcDb, destSet);
     ImportTables(srcDb, destSet);
     ImportProcs(srcDb, destSet);
     ImportViews(srcDb, destSet);
     ImportRelations(srcDb, destSet);
     System.Diagnostics.Trace.WriteLine(destSet.GetXml());
 }
Пример #13
0
        public static void ImportDatabaseInfos(IDatabase srcDb, SchemaXsd3bEx destSet)
        {
            SchemaDefinitionRow destDb = destSet.GetSchemaDefinitionRow();

            if (srcDb.Description.Length > 0)
            {
                destDb.SchemaComment = srcDb.Description;
            }
            destDb.SchemaAlias = srcDb.Alias;
            destDb.SchemaID    = (srcDb.SchemaName.Length > 0) ? srcDb.SchemaName : srcDb.Name;
        }
Пример #14
0
 public void Open()
 {
     try
     {
         xsd3b = getXsd3b(this.ConnectionString);
         state = ConnectionState.Open;
     }
     catch (Exception)
     {
         state = ConnectionState.Broken;
         throw;
     }
 }
Пример #15
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);
        }
Пример #16
0
        public void Open()
        {

            try
            {
                xsd3b = getXsd3b(this.ConnectionString);
                state = ConnectionState.Open;
            }
            catch (Exception)
            {
                state = ConnectionState.Broken;
                throw;
            }
        }
Пример #17
0
 public static void ImportViews(IDatabase srcDb, SchemaXsd3bEx destSet)
 {
     foreach (IView srcView in srcDb.Views)
         ImportView(srcView, destSet.TableDefinition);
 }
Пример #18
0
 public static void ImportTables(IDatabase srcDb, SchemaXsd3bEx destSet)
 {
     foreach (ITable srcTab in srcDb.Tables)
         ImportTable(srcTab, destSet.TableDefinition);
 }
Пример #19
0
 public static void ImportRelations(IDatabase srcDb, SchemaXsd3bEx destSet)
 {
     TableDefinitionDataTable destTabs = destSet.TableDefinition;
     foreach (ITable srcTab in srcDb.Tables)
     {
         ImportChildRelations(srcTab, destTabs);
     }
 }
Пример #20
0
 public static void ImportProcs(IDatabase srcDb, SchemaXsd3bEx destSet)
 {
     foreach (IProcedure srcProc in srcDb.Procedures)
         ImportProc(srcProc, destSet.TableDefinition);
 }