Esempio n. 1
0
        // GetForeignKeyConstraintColumns
        public static DataTable GetForeignKeys(OleDbConnection connection)
        {
            DataTable dataTable = (DataTable)XmlObjectSerializer.GetObject(Properties.Resources.StoreSchemaDefinition_ForeignKeys, typeof(DataTable));

            DataTable schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Foreign_Keys, new object[] { });

            foreach (System.Data.DataRow table in schemaTable.Rows)
            {
                dataTable.Rows.Add(
                    table["FK_NAME"] + "." + table["ORDINAL"],              // Id
                    table["ORDINAL"],                                       // Ordinal
                    table["FK_NAME"],                                       // ConstraintId
                    table["FK_TABLE_NAME"] + "." + table["FK_COLUMN_NAME"], // FromColumnId
                    table["PK_TABLE_NAME"] + "." + table["PK_COLUMN_NAME"], // ToColumnId
                    table["FK_TABLE_NAME"],                                 // FromTable
                    table["FK_COLUMN_NAME"],                                // FromColumn
                    table["PK_TABLE_NAME"],                                 // ToTable
                    table["PK_COLUMN_NAME"]                                 // ToColumn
                    );
            }


            dataTable.AcceptChanges();

            return(dataTable);
        }
Esempio n. 2
0
        public static DataTable GetIndexColumns(OleDbConnection connection)
        {
            DataTable dataTable = (DataTable)XmlObjectSerializer.GetObject(Properties.Resources.StoreSchemaDefinition_IndexColumns, typeof(DataTable));

            DataTable schemaTable = connection.GetOleDbSchemaTable(
                System.Data.OleDb.OleDbSchemaGuid.Indexes,
                new object[] { });

            foreach (System.Data.DataRow table in schemaTable.Rows)
            {
                dataTable.Rows.Add(
                    (string)table["TABLE_NAME"] + "." + (string)table["INDEX_NAME"] + "." + (string)table["COLUMN_NAME"], // Id
                    table["TABLE_NAME"] + "." + (string)table["INDEX_NAME"],                                              // ParentId
                    table["TABLE_NAME"] + "." + table["COLUMN_NAME"],                                                     // ColumnId
                    table["TABLE_NAME"],                                                                                  // Table
                    table["INDEX_NAME"],                                                                                  // Index
                    table["COLUMN_NAME"],                                                                                 // Name
                    Convert.ToInt32(table["ORDINAL_POSITION"])                                                            // Ordinal
                    );
            }

            dataTable.AcceptChanges();

            return(dataTable);
        }
Esempio n. 3
0
        public static DataTable GetForeignKeyConstraints(OleDbConnection connection)
        {
            DataTable dataTable = (DataTable)XmlObjectSerializer.GetObject(Properties.Resources.StoreSchemaDefinition_ForeignKeyConstraints, typeof(DataTable));

            DataTable schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Foreign_Keys, new object[] { });

            foreach (System.Data.DataRow table in schemaTable.Rows)
            {
                if (Convert.ToInt32(table["ORDINAL"]) == 1)
                {
                    dataTable.Rows.Add(
                        table["FK_NAME"],       // Id
                        table["PK_TABLE_NAME"], // ToTableId
                        table["FK_TABLE_NAME"], // FromTableId
                        table["UPDATE_RULE"],   // Update rule
                        table["DELETE_RULE"]    // Delete rule
                        );
                }
            }


            dataTable.AcceptChanges();

            return(dataTable);
        }
Esempio n. 4
0
        public static DataTable GetIndexes(OleDbConnection connection)
        {
            DataTable dataTable = (DataTable)XmlObjectSerializer.GetObject(Properties.Resources.StoreSchemaDefinition_Indexes, typeof(DataTable));

            DataTable schemaTable = connection.GetOleDbSchemaTable(
                System.Data.OleDb.OleDbSchemaGuid.Indexes,
                new object[] { });

            foreach (System.Data.DataRow table in schemaTable.Rows)
            {
                if (
                    Convert.ToInt32(table["ORDINAL_POSITION"]) == 1  // Only the first field of the index
                    )
                {
                    dataTable.Rows.Add(
                        (string)table["TABLE_NAME"] + "." + (string)table["INDEX_NAME"], // Id
                        table["TABLE_NAME"],                                             // ParentId
                        table["TABLE_NAME"],                                             // Table
                        table["INDEX_NAME"],                                             // Name
                        Convert.ToBoolean(table["UNIQUE"]),                              // IsUnique
                        Convert.ToBoolean(table["PRIMARY_KEY"])                          // IsPrimary
                        );
                }
            }

            dataTable.AcceptChanges();

            return(dataTable);
        }
Esempio n. 5
0
        public static DataTable GetTables(OleDbConnection connection)
        {
            bool includeSystemTables = false;

            DataTable dataTable = (DataTable)XmlObjectSerializer.GetObject(Properties.Resources.StoreSchemaDefinition_Tables, typeof(DataTable));

            DataTable schemaTable = connection.GetOleDbSchemaTable(
                System.Data.OleDb.OleDbSchemaGuid.Tables,
                new object[] { null, null, null, "TABLE" });

            foreach (System.Data.DataRow table in schemaTable.Rows)
            {
                if (!IsSystemTable(table["TABLE_NAME"].ToString()) || includeSystemTables)
                {
                    dataTable.Rows.Add(
                        table["TABLE_NAME"],
                        "Jet",
                        "Jet",
                        table["TABLE_NAME"],
                        IsSystemTable(table["TABLE_NAME"].ToString()) ? "SYSTEM" : "USER");
                }
            }

            dataTable.AcceptChanges();

            return(dataTable);
        }
Esempio n. 6
0
        public static DataTable GetViewColumns(OleDbConnection connection)
        {
            DataTable dataTable = (DataTable)XmlObjectSerializer.GetObject(Properties.Resources.StoreSchemaDefinition_ViewColumns, typeof(DataTable));
            Dictionary <string, string> objectsToGet = GetTablesOrViewDictionary(connection, false);

            GetTableOrViewColumns(connection, dataTable, objectsToGet);

            return(dataTable);
        }
Esempio n. 7
0
        public static DataTable GetViews(OleDbConnection connection)
        {
            DataTable dataTable = (DataTable)XmlObjectSerializer.GetObject(Properties.Resources.StoreSchemaDefinition_Views, typeof(DataTable));

            DataTable schemaTable = connection.GetSchema("Views");

            foreach (System.Data.DataRow table in schemaTable.Rows)
            {
                dataTable.Rows.Add(table["TABLE_NAME"], "Jet", "Jet", table["TABLE_NAME"], table["VIEW_DEFINITION"], table["IS_UPDATABLE"]);
            }

            dataTable.AcceptChanges();

            return(dataTable);
        }
Esempio n. 8
0
        /// <summary>
        /// Gets the views via OleDb schema table.
        /// No definition can be retrieved
        /// </summary>
        /// <param name="connection">The connection.</param>
        /// <returns></returns>
        public static DataTable GetViewsViaGetOleDbSchemaTable(OleDbConnection connection)
        {
            DataTable dataTable = (DataTable)XmlObjectSerializer.GetObject(Properties.Resources.StoreSchemaDefinition_Views, typeof(DataTable));

            DataTable schemaTable = connection.GetOleDbSchemaTable(
                System.Data.OleDb.OleDbSchemaGuid.Tables,
                new object[] { null, null, null, "VIEW" });

            foreach (System.Data.DataRow table in schemaTable.Rows)
            {
                dataTable.Rows.Add(table["TABLE_NAME"], "Jet", "Jet", table["TABLE_NAME"], DBNull.Value, 0);
            }

            dataTable.AcceptChanges();

            return(dataTable);
        }
Esempio n. 9
0
        public static DataTable GetConstraintColumns(OleDbConnection connection)
        {
            DataTable dataTable = (DataTable)XmlObjectSerializer.GetObject(Properties.Resources.StoreSchemaDefinition_ConstraintColumns, typeof(DataTable));


            DataTable schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Foreign_Keys, new object[] { });

            foreach (System.Data.DataRow table in schemaTable.Rows)
            {
                dataTable.Rows.Add(
                    table["FK_NAME"],                                      // ConstraintId
                    table["FK_TABLE_NAME"] + "." + table["FK_COLUMN_NAME"] // ColumnId
                    );
            }

            schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Primary_Keys, new object[] { });

            foreach (System.Data.DataRow table in schemaTable.Rows)
            {
                dataTable.Rows.Add(
                    table["TABLE_NAME"] + "." + table["PK_NAME"],    // ConstraintId
                    table["TABLE_NAME"] + "." + table["COLUMN_NAME"] // ColumnId
                    );
            }

            schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Indexes, new object[] { });

            foreach (System.Data.DataRow table in schemaTable.Rows)
            {
                if (
                    Convert.ToBoolean(table["PRIMARY_KEY"]) == false && // Not a primary key
                    Convert.ToBoolean(table["UNIQUE"]) == true          // Unique constraint
                    )
                {
                    dataTable.Rows.Add(
                        table["TABLE_NAME"] + "." + table["INDEX_NAME"], // ConstraintId
                        table["TABLE_NAME"] + "." + table["COLUMN_NAME"] // ColumnId
                        );
                }
            }

            dataTable.AcceptChanges();

            return(dataTable);
        }
Esempio n. 10
0
        public static DataTable GetCheckConstraints(OleDbConnection connection)
        {
            DataTable dataTable = (DataTable)XmlObjectSerializer.GetObject(Properties.Resources.StoreSchemaDefinition_CheckConstraints, typeof(DataTable));

            DataTable schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Check_Constraints, new object[] { });

            foreach (System.Data.DataRow table in schemaTable.Rows)
            {
                dataTable.Rows.Add(
                    table["CONSTRAINT_NAME"], // Id
                    table["CHECK_CLAUSE"]     // Expression
                    );
            }

            dataTable.AcceptChanges();

            return(dataTable);
        }
Esempio n. 11
0
 public static DataTable GetFunctions(DbConnection connection)
 {
     return((DataTable)XmlObjectSerializer.GetObject(Properties.Resources.StoreSchemaDefinition_Functions, typeof(DataTable)));
 }
Esempio n. 12
0
 public static DataTable GetProcedures(OleDbConnection oleDbConnection)
 {
     return((DataTable)XmlObjectSerializer.GetObject(Properties.Resources.StoreSchemaDefinition_Procedures, typeof(DataTable)));
 }
Esempio n. 13
0
        public static DataTable GetConstraints(OleDbConnection connection)
        {
            DataTable dataTable = (DataTable)XmlObjectSerializer.GetObject(Properties.Resources.StoreSchemaDefinition_Constraints, typeof(DataTable));

            DataTable schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Check_Constraints, new object[] { });

            foreach (System.Data.DataRow table in schemaTable.Rows)
            {
                dataTable.Rows.Add(
                    table["CONSTRAINT_NAME"], // Id
                    DBNull.Value,             // ParentId
                    table["CONSTRAINT_NAME"], // Name
                    "CHECK",                  // ConstraintType
                    false,                    // IsDeferrable
                    false                     // IsIntiallyDeferred
                    );
            }

            schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Foreign_Keys, new object[] { });

            foreach (System.Data.DataRow table in schemaTable.Rows)
            {
                if (Convert.ToInt32(table["ORDINAL"]) == 1)
                {
                    dataTable.Rows.Add(
                        table["FK_NAME"],       // Id
                        table["FK_TABLE_NAME"], // ParentId
                        table["FK_NAME"],       // Name
                        "FOREIGN KEY",          // ConstraintType
                        table["DEFERRABILITY"], // IsDeferrable
                        false                   // IsIntiallyDeferred
                        );
                }
            }

            schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Primary_Keys, new object[] { });

            foreach (System.Data.DataRow table in schemaTable.Rows)
            {
                if (Convert.ToInt32(table["ORDINAL"]) == 1)
                {
                    dataTable.Rows.Add(
                        table["TABLE_NAME"] + "." + table["PK_NAME"], // Id
                        table["TABLE_NAME"],                          // ParentId
                        table["PK_NAME"],                             // Name
                        "PRIMARY KEY",                                // ConstraintType
                        false,                                        // IsDeferrable
                        false                                         // IsIntiallyDeferred
                        );
                }
            }

            schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Indexes, new object[] { });

            foreach (System.Data.DataRow table in schemaTable.Rows)
            {
                if (
                    Convert.ToInt32(table["ORDINAL_POSITION"]) == 1 &&  // Only the first field of the index
                    Convert.ToBoolean(table["PRIMARY_KEY"]) == false && // Not a primary key
                    Convert.ToBoolean(table["UNIQUE"]) == true          // Unique constraint
                    )
                {
                    dataTable.Rows.Add(
                        (string)table["TABLE_NAME"] + "." + (string)table["INDEX_NAME"], // Id
                        table["TABLE_NAME"],                                             // ParentId
                        table["INDEX_NAME"],                                             // Name
                        "UNIQUE",                                                        // ConstraintType
                        false,                                                           // IsDeferrable
                        false                                                            // IsIntiallyDeferred
                        );
                }
            }

            dataTable.AcceptChanges();

            return(dataTable);
        }
Esempio n. 14
0
 public static DataTable GetViewConstraints(OleDbConnection connection)
 {
     return((DataTable)XmlObjectSerializer.GetObject(Properties.Resources.StoreSchemaDefinition_ViewConstraints, typeof(DataTable)));
 }