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); }
public static void ImportViews(IDatabase srcDb, SchemaXsd3bEx destSet) { foreach (IView srcView in srcDb.Views) { ImportView(srcView, destSet.TableDefinition); } }
public static String GetXml(IDatabase srcDb) { SchemaXsd3bEx destSet = SchemaXsd3bEx.CreateNewSchemaXsd3b(); Import(srcDb, destSet); return(destSet.GetXml()); }
public static void ImportTables(IDatabase srcDb, SchemaXsd3bEx destSet) { foreach (ITable srcTab in srcDb.Tables) { ImportTable(srcTab, destSet.TableDefinition); } }
public static void ImportProcs(IDatabase srcDb, SchemaXsd3bEx destSet) { foreach (IProcedure srcProc in srcDb.Procedures) { ImportProc(srcProc, destSet.TableDefinition); } }
/// <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; */ }
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); }
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); }
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; }
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()); }
public static void ImportRelations(IDatabase srcDb, SchemaXsd3bEx destSet) { TableDefinitionDataTable destTabs = destSet.TableDefinition; foreach (ITable srcTab in srcDb.Tables) { ImportChildRelations(srcTab, destTabs); } }
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; }
public void Open() { try { xsd3b = getXsd3b(this.ConnectionString); state = ConnectionState.Open; } catch (Exception) { state = ConnectionState.Broken; throw; } }
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); }
public static void ImportViews(IDatabase srcDb, SchemaXsd3bEx destSet) { foreach (IView srcView in srcDb.Views) ImportView(srcView, destSet.TableDefinition); }
public static void ImportTables(IDatabase srcDb, SchemaXsd3bEx destSet) { foreach (ITable srcTab in srcDb.Tables) ImportTable(srcTab, destSet.TableDefinition); }
public static void ImportProcs(IDatabase srcDb, SchemaXsd3bEx destSet) { foreach (IProcedure srcProc in srcDb.Procedures) ImportProc(srcProc, destSet.TableDefinition); }