예제 #1
0
        private void convertDataBaseSchemaTo56(DAS database)
        {
            //CREATION OF TABLE TAB_TEMPLATE_REFERENCES
            database.ExecuteSQL("CREATE TABLE TAB_TEMPLATE_REFERENCES (TEMPLATE_TYPE TEXT(50) NOT NULL, NAME TEXT(255) NOT NULL, REFERENCE_TEMPLATE_TYPE TEXT(50) NOT NULL, REFERENCE_NAME TEXT(255) NOT NULL , CONSTRAINT TEMPLATES_PK PRIMARY KEY(TEMPLATE_TYPE, NAME,REFERENCE_TEMPLATE_TYPE, REFERENCE_NAME))");

            //CREATION OF INDEXES
            //CREATION OF REFERENTIAL INTEGRITY
            database.ExecuteSQL("ALTER TABLE TAB_TEMPLATE_REFERENCES ADD CONSTRAINT RI_TEMPLATE_REFERENCES_1 FOREIGN KEY (TEMPLATE_TYPE,NAME) REFERENCES TAB_TEMPLATES (TEMPLATE_TYPE,NAME) ON UPDATE CASCADE ON DELETE CASCADE");
            database.ExecuteSQL("ALTER TABLE TAB_TEMPLATE_REFERENCES ADD CONSTRAINT RI_TEMPLATE_REFERENCES_2 FOREIGN KEY (REFERENCE_TEMPLATE_TYPE,REFERENCE_NAME) REFERENCES TAB_TEMPLATES (TEMPLATE_TYPE,NAME) ON UPDATE CASCADE ON DELETE CASCADE");
        }
예제 #2
0
        private void convertDataBaseSchemaTo53(DAS database)
        {
            //SAVE TEMPLATES
            database.ExecuteSQL("SELECT * INTO SAVED_TEMPLATES FROM TAB_TEMPLATES");

            //DROP OLD SCHEMA
            //DROP OF REFERENTIAL INTEGRITY
            //DROP OF CONSTRAINT RI_BUILDING_BLOCK_TYPE_METADATA_1
            database.ExecuteSQL("ALTER TABLE TAB_BUILDING_BLOCK_TYPE_METADATA DROP CONSTRAINT RI_BUILDING_BLOCK_TYPE_METADATA_1");
            //DROP OF CONSTRAINT RI_TEMPLATES_1
            database.ExecuteSQL("ALTER TABLE TAB_TEMPLATES DROP CONSTRAINT RI_TEMPLATES_1");
            //DROP OF CONSTRAINT RI_TEMPLATE_METADATA_1
            database.ExecuteSQL("ALTER TABLE TAB_TEMPLATE_METADATA DROP CONSTRAINT RI_TEMPLATE_METADATA_1");
            //DROP OF CONSTRAINT RI_TEMPLATE_METADATA_2
            database.ExecuteSQL("ALTER TABLE TAB_TEMPLATE_METADATA DROP CONSTRAINT RI_TEMPLATE_METADATA_2");

            //DROP OF CHECK CONSTRAINTS
            database.ExecuteSQL("ALTER TABLE TAB_TEMPLATE_METADATA DROP CONSTRAINT TEMPLATE_METADATA_C1");
            database.ExecuteSQL("ALTER TABLE TAB_TEMPLATES DROP CONSTRAINT TEMPLATES_C1");

            //DROP ALL TABLES
            database.ExecuteSQL("DROP TABLE TAB_BUILDING_BLOCK_TYPES");
            database.ExecuteSQL("DROP TABLE TAB_BUILDING_BLOCK_TYPE_METADATA");
            database.ExecuteSQL("DROP TABLE TAB_TEMPLATES");
            database.ExecuteSQL("DROP TABLE TAB_TEMPLATE_METADATA");

            //CREATE NEW SCHEMA
            //CREATION OF DATABASE SCHEMA TemplateDB
            //CREATION OF TABLES
            //CREATION OF TABLE TAB_OBJECT_TYPES
            database.ExecuteSQL("CREATE TABLE TAB_TEMPLATE_TYPES (TEMPLATE_TYPE TEXT(50) NOT NULL, CONSTRAINT TEMPLATE_TYPES_PK PRIMARY KEY (TEMPLATE_TYPE))");
            //CREATION OF TABLE TAB_TEMPLATES
            database.ExecuteSQL("CREATE TABLE TAB_TEMPLATES (TEMPLATE_TYPE TEXT(50) NOT NULL, NAME TEXT(255) NOT NULL, DESCRIPTION MEMO, XML MEMO NOT NULL, CONSTRAINT TEMPLATES_PK PRIMARY KEY(TEMPLATE_TYPE, NAME))");

            //CREATION OF INDEXES
            //CREATION OF REFERENTIAL INTEGRITY
            database.ExecuteSQL("ALTER TABLE TAB_TEMPLATES ADD CONSTRAINT RI_TEMPLATES_1 FOREIGN KEY (TEMPLATE_TYPE) REFERENCES TAB_TEMPLATE_TYPES (TEMPLATE_TYPE) ON UPDATE CASCADE");

            //RESTORE SAVED TEMPLATES
            database.ExecuteSQL("INSERT INTO TAB_TEMPLATE_TYPES (TEMPLATE_TYPE) SELECT DISTINCT s.BUILDING_BLOCK_TYPE FROM SAVED_TEMPLATES s");
            database.ExecuteSQL("INSERT INTO TAB_TEMPLATES (TEMPLATE_TYPE, NAME, DESCRIPTION, XML) SELECT s.BUILDING_BLOCK_TYPE, s.NAME, s.DESCRIPTION, s.XML FROM SAVED_TEMPLATES s");

            //DROP TEMPORARY TABLE
            database.ExecuteSQL("DROP TABLE SAVED_TEMPLATES");
        }