/// <summary> /// Get a datatable with all tables. /// </summary> public override System.Data.DataTable QueryTables(bool p_all_schemas) { System.Data.DataTable v_table; System.Data.DataRow v_row; v_table = new System.Data.DataTable("Tables"); v_table.Columns.Add("table_name"); com.healthmarketscience.jackcess.Database v_database = com.healthmarketscience.jackcess.DatabaseBuilder.open(new java.io.File(this.v_connection.v_service)); java.util.Set v_set = v_database.getTableNames(); object[] v_obj = v_set.toArray(); foreach (object o in v_obj) { v_row = v_table.NewRow(); if (((string)o).Contains(" ")) { v_row["table_name"] = "[" + (string)o + "]"; } else { v_row["table_name"] = (string)o; } v_table.Rows.Add(v_row); } return(v_table); }
/*public void write(string resourceName, Assembly compiledAssembly) * { * * this.assem = compiledAssembly; * wire(resourceName); * }*/ public override void loadAssemblies() { java.util.Set set = this.assemblySerializationInfoStore.keySet(); object[] objs = set.toArray(); BinaryFormatter formatter = new BinaryFormatter(); foreach (object obj in objs) { Assembly assem = (Assembly)formatter.Deserialize(new MemoryStream((byte[]) (this.assemblySerializationInfoStore.get(obj)))); this.store.put(obj, assem); } }
/// <summary> /// Get a datatable with all tables foreign keys. /// </summary> /// <param name="p_table">Table name.</param> public override System.Data.DataTable QueryTablesForeignKeys(string p_table) { if (p_table == null) { System.Data.DataTable v_tables = this.QueryTables(false); System.Data.DataTable v_all_fks = new System.Data.DataTable(); v_all_fks.Columns.Add("table_name"); v_all_fks.Columns.Add("constraint_name"); v_all_fks.Columns.Add("r_table_name"); v_all_fks.Columns.Add("column_name"); v_all_fks.Columns.Add("r_column_name"); v_all_fks.Columns.Add("update_rule"); v_all_fks.Columns.Add("delete_rule"); foreach (System.Data.DataRow v_tabletemp in v_tables.Rows) { System.Data.DataRow v_row; System.Data.DataTable v_fks = new System.Data.DataTable("TableForeignKeys"); v_fks.Columns.Add("table_name"); v_fks.Columns.Add("constraint_name"); v_fks.Columns.Add("r_table_name"); v_fks.Columns.Add("column_name"); v_fks.Columns.Add("r_column_name"); v_fks.Columns.Add("update_rule"); v_fks.Columns.Add("delete_rule"); com.healthmarketscience.jackcess.Database v_database = com.healthmarketscience.jackcess.DatabaseBuilder.open(new java.io.File(this.v_connection.v_service)); com.healthmarketscience.jackcess.Table v_table = v_database.getTable(v_tabletemp["table_name"].ToString().Replace("[", "").Replace("]", "")); java.util.Set v_set = v_database.getTableNames(); object[] v_obj = v_set.toArray(); foreach (object v_tablename in v_obj) { com.healthmarketscience.jackcess.Table v_table2 = v_database.getTable((string)v_tablename); try { com.healthmarketscience.jackcess.Index v_index = v_table.getForeignKeyIndex(v_table2); if (!v_index.getName().StartsWith(".")) { com.healthmarketscience.jackcess.Index v_index2 = v_index.getReferencedIndex(); java.util.List v_list = v_index.getColumns(); object[] v_obj2 = v_list.toArray(); java.util.List v_list2 = v_index2.getColumns(); object[] v_obj3 = v_list2.toArray(); java.util.List v_list3 = v_database.getRelationships(v_table, v_table2); object[] v_obj4 = v_list3.toArray(); bool v_dcascade = false; bool v_ucascade = false; foreach (object o in v_obj4) { com.healthmarketscience.jackcess.Relationship r = (com.healthmarketscience.jackcess.Relationship)o; if (r.getName() == v_index.getName()) { v_dcascade = r.cascadeDeletes(); v_ucascade = r.cascadeUpdates(); } } int k = 0; foreach (object o in v_obj2) { com.healthmarketscience.jackcess.Index.Column c = (com.healthmarketscience.jackcess.Index.Column)o; com.healthmarketscience.jackcess.Index.Column c2 = (com.healthmarketscience.jackcess.Index.Column)v_obj3[k]; v_row = v_fks.NewRow(); v_row["table_name"] = v_tabletemp["table_name"].ToString(); v_row["constraint_name"] = v_index.getName(); v_row["r_table_name"] = (string)v_tablename; v_row["column_name"] = c.getName(); v_row["r_column_name"] = c2.getName(); if (v_ucascade) { v_row["update_rule"] = "CASCADE"; } else { v_row["update_rule"] = "SET NULL"; } if (v_dcascade) { v_row["delete_rule"] = "CASCADE"; } else { v_row["delete_rule"] = "SET NULL"; } v_fks.Rows.Add(v_row); k++; } } } catch (java.lang.IllegalArgumentException) { } } v_all_fks.Merge(v_fks); } return(v_all_fks); } else { System.Data.DataRow v_row; System.Data.DataTable v_fks = new System.Data.DataTable("TableForeignKeys"); v_fks.Columns.Add("table_name"); v_fks.Columns.Add("constraint_name"); v_fks.Columns.Add("r_table_name"); v_fks.Columns.Add("column_name"); v_fks.Columns.Add("r_column_name"); v_fks.Columns.Add("update_rule"); v_fks.Columns.Add("delete_rule"); com.healthmarketscience.jackcess.Database v_database = com.healthmarketscience.jackcess.DatabaseBuilder.open(new java.io.File(this.v_connection.v_service)); com.healthmarketscience.jackcess.Table v_table = v_database.getTable(p_table.Replace("[", "").Replace("]", "")); java.util.Set v_set = v_database.getTableNames(); object[] v_obj = v_set.toArray(); foreach (object v_tablename in v_obj) { com.healthmarketscience.jackcess.Table v_table2 = v_database.getTable((string)v_tablename); try { com.healthmarketscience.jackcess.Index v_index = v_table.getForeignKeyIndex(v_table2); if (!v_index.getName().StartsWith(".")) { com.healthmarketscience.jackcess.Index v_index2 = v_index.getReferencedIndex(); java.util.List v_list = v_index.getColumns(); object[] v_obj2 = v_list.toArray(); java.util.List v_list2 = v_index2.getColumns(); object[] v_obj3 = v_list2.toArray(); java.util.List v_list3 = v_database.getRelationships(v_table, v_table2); object[] v_obj4 = v_list3.toArray(); bool v_dcascade = false; bool v_ucascade = false; foreach (object o in v_obj4) { com.healthmarketscience.jackcess.Relationship r = (com.healthmarketscience.jackcess.Relationship)o; if (r.getName() == v_index.getName()) { v_dcascade = r.cascadeDeletes(); v_ucascade = r.cascadeUpdates(); } } int k = 0; foreach (object o in v_obj2) { com.healthmarketscience.jackcess.Index.Column c = (com.healthmarketscience.jackcess.Index.Column)o; com.healthmarketscience.jackcess.Index.Column c2 = (com.healthmarketscience.jackcess.Index.Column)v_obj3[k]; v_row = v_fks.NewRow(); v_row["table_name"] = p_table; v_row["constraint_name"] = v_index.getName(); v_row["r_table_name"] = (string)v_tablename; v_row["column_name"] = c.getName(); v_row["r_column_name"] = c2.getName(); if (v_ucascade) { v_row["update_rule"] = "CASCADE"; } else { v_row["update_rule"] = "SET NULL"; } if (v_dcascade) { v_row["delete_rule"] = "CASCADE"; } else { v_row["delete_rule"] = "SET NULL"; } v_fks.Rows.Add(v_row); k++; } } } catch (java.lang.IllegalArgumentException) { } } return(v_fks); } }