<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    keep moving!

    We must not cease from exploration. And the end of all our exploring will be to arrive where we began and to know the place for the first time.
    隨筆 - 37, 文章 - 2, 評論 - 3, 引用 - 0
    數據加載中……

    數據文件比較

    def dbDefInfo = new XmlParser().parse(new File(".\\DbDef.xml"))
    def file1Path = ".\\fullConfig1.xml"
    def file2Path = ".\\fullConfig2.xml"

    println "~~~~~~~~~~~~~~~~~~~~~~~~~~  $file1Path to $file2Path   ~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n"
    compareXml(new File(file1Path),new File(file2Path),dbDefInfo)
    println "\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~   $file2Path to $file1Path   ~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n"
    compareXml(new File(file2Path),new File(file1Path),dbDefInfo)


    println 'fineshed'

    def compareXml(file1,file2,dbDef){
        def tablelist1 = new XmlParser().parse(file1)
        def tablelist2 = new XmlParser().parse(file2)

        tablelist1.DBTABLE.each {dbtable1 ->
            for(dbRecord in dbtable1.DBRECORD){
                def otherDbRecord = findDbRecord(dbtable1,dbRecord,tablelist2,dbDef)
                compareDbRecord(dbRecord,otherDbRecord)
             }
        }
    }

    def findDbRecord(dbtable1,dbRecord,tablelist2,dbDef){
        def tableDef = dbDef.Table.find {"${it.@Name}" == "${dbtable1.@name}"}
        if (tableDef == null){
            println "${dbtable1.@name} is not exist in dbdef" ;
            return null;
        }
        def priKeyMap = getPriKeyInfo(tableDef)
        def prikeyInfo = priKeyMap["${dbtable1.@name}"]
        def rdnMap = [:]

        dbRecord.FIELD.findAll{prikeyInfo.contains("${it.@name}")}.each{rdnMap.put("${it.@name}","${it.@value}")}
        def dbtable2 =

        tablelist2.DBTABLE.find{"${it.@name}" == "${dbtable1.@name}"}

        if(dbtable2 == null)
            return null
        else
            return dbtable2.DBRECORD.find{dbRecord2 ->
                def field2s = dbRecord2.FIELD.findAll{rdnMap.containsKey("${it.@name}") && rdnMap.get("${it.@name}") == "${it.@value}"}
                field2s.size() == rdnMap.size()
                }
    }

    def compareDbRecord(dbRecord1,dbRecord2){

        if (dbRecord2==null){
            printDbRecord(dbRecord1,dbRecord2)
            return;
        }

        def sign1 = dbRecord1.FIELD.find{filed1 ->
            dbRecord2.FIELD.find{filed2 ->
                "${filed1.@name}"=="${filed2.@name}"?"${filed1.@value}"!="${filed2.@value}":false
            }
        }

        def sign2 = dbRecord2.FIELD.find{filed1 ->
        dbRecord1.FIELD.find{filed2 ->
                "${filed1.@name}"=="${filed2.@name}"?"${filed1.@value}"!="${filed2.@value}":false
        }
    }
        if (sign1  || sign2)
        {
            printDbRecord(dbRecord1,dbRecord2)
        }
    }

    def printDbRecord(dbRecord1,dbRecord2){
        dbRecord1.FIELD.each{field ->
        field.attributes().each{print "$it.key $it.value "}
        }
        println ''
        if (dbRecord2!=null)
            dbRecord2.FIELD.each{field ->
            field.attributes().each{print "$it.key $it.value "}
        }
        println '\n'
    }

    def getPriKeyInfo(tableDef){
     def priKeyMap = [:]
     for(priKey in tableDef.PriKey){
      def tableName = "${priKey.@Name}"[0..("${priKey.@Name}".lastIndexOf("_PK")-1)]
      priKeyMap.put(tableName,priKey.PKI.collect{"${it.@Field}"})
     }
     return priKeyMap
    }

    posted on 2008-10-02 17:10 大石頭 閱讀(292) 評論(0)  編輯  收藏 所屬分類: Groovy

    主站蜘蛛池模板: 精品亚洲AV无码一区二区| 久久久久久亚洲精品成人| 亚洲av无码成人精品国产| 中文字幕无码不卡免费视频| 亚洲精品一卡2卡3卡三卡四卡| 一级毛片aaaaaa免费看| 久久精品国产亚洲AV麻豆~| 久久aⅴ免费观看| 亚洲黄网站wwwwww| 国产免费的野战视频| 性xxxx黑人与亚洲| 麻豆国产VA免费精品高清在线| 久久久久亚洲AV无码去区首| 国产无遮挡裸体免费视频| 少妇亚洲免费精品| 国产V亚洲V天堂无码| 久久精品国产免费观看| 国产亚洲精品成人AA片| 成人亚洲综合天堂| 久久久久久久99精品免费观看| 亚洲色图校园春色| 天天干在线免费视频| 一级特黄aaa大片免费看| 亚洲AV成人一区二区三区AV| 精品久久8x国产免费观看| 亚洲综合欧美色五月俺也去| 亚洲AV无码乱码在线观看性色扶| 久久99精品免费一区二区| 亚洲一区二区三区首页| 在线免费不卡视频| 最近免费中文字幕MV在线视频3 | 国产亚洲一区区二区在线| 久久精品视频免费播放| 91在线亚洲综合在线| 久久亚洲中文字幕精品一区| 1000部拍拍拍18免费网站| 亚洲av乱码中文一区二区三区| 不卡一卡二卡三亚洲| 免费看污成人午夜网站| 九九视频高清视频免费观看 | 亚洲欭美日韩颜射在线二|