コード例 #1
0
ファイル: Access.cs プロジェクト: lulzzz/OmniDB
        /// <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);
        }
コード例 #2
0
        /*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);
            }
        }
コード例 #3
0
ファイル: Access.cs プロジェクト: lulzzz/OmniDB
        /// <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);
            }
        }