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

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

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

    posts - 18,  comments - 0,  trackbacks - 0
    一、問題描述:
       原來的別名模型對象AliasModel用來存放所有別名,這樣無法區別是表別名還是字段別名,設置英文別名時,如果存在表別名,則字段將變成"表 AS 表英文別名.字段",如表中文別名(傳票對照表)對應的英文別名為(CNF_TABLE)時,字段“AI_94傳票對照表.省/市代號”的英文會變成
    CNF as CNF_TABLE.CNF01。這是錯誤的。

    二、修改內容:
     1、增加表別名模型對象TableAliasModel。
     2、修改語法文件的TreeParser,當遍歷語法樹中發現表別名時,則創建TableAliasModel對象,并加入到model中。
       table_name returns [TableModel model]
       {AliasModel a; model=null; TableAliasModel ta;}
          : t:ID
             {model=new TableModel(t.getText());}
          // | #("as" t1:ID a=alias)
          // {model=new TableModel(t1.getText()); model.setAlias(a);}
          // | #("作為" t2:ID a = alias)
          // {model = new TableModel(t2.getText()); model.setAlias(a);}
          | #("as" t1:ID ta = tableAlias)
             {model = new TableModel(t1.getText()); model.setAlias(ta);}
          | #("作為" t2:ID ta = tableAlias)
             {model = new TableModel(t2.getText()); model.setAlias(ta);}
           ;
       
       tableAlias returns [TableAliasModel model]
       {model=null;}
       : a1:QUOTED_STRING
       {model = new TableAliasModel(a1.getText());}
       | a2:ID
       {model = new TableAliasModel(a2.getText());}
       ; 
     3、修改了TableModel的getChString()和getEnString()方法,改成從TableAliasModel獲取中英文別名信息。
     4、修改了FieldModel的getEnString()方法,在取得tableEnName時,判斷是否存在別名,如果存在,則取英文別名。
        String ret = fieldEnName;
        //如果存在英文表名
        if (tableEnName != null && tableEnName.length() > 0){
          String[] tableEnNameArr = tableEnName.split(" as ");
          //如果英文表名中存在別名(CNF AS CNF2007),則英文表名為英文別名CNF2007
          if (tableEnNameArr != null && tableEnNameArr.length > 0 && tableEnNameArr.length == 2){
            if (tableEnNameArr[1] != null && !tableEnNameArr[1].equals(""))
              tableEnName = tableEnNameArr[1].trim();
          }
          ret = tableEnName + "." + ret;
        }
        return ret;
    三、調用方法:
       如果需要設置表的英文別名時,必須在t.addDbTable("AI_94傳票對照表", "CNF"); t.addDbField("AI_94傳票對照表", "省/市代號", "CNF01")之前進行設置,否則無效。
       QueryModel[] tableAliasModelArr = t.getQueryModel().getModelsFromAllChildrenByClass(TableAliasModel.class);
       for (int i = 0; i < tableAliasModelArr.length; i++){
          System.out.println(tableAliasModelArr[i].getChString());
          TableAliasModel aliasModel = (TableAliasModel) tableAliasModelArr[i];
          aliasModel.setEnAlias("CNF20070101");
          System.out.println(tableAliasModelArr[i].getEnString());
       }
     

    posted on 2007-04-03 11:33 LORD BLOG 閱讀(837) 評論(0)  編輯  收藏 所屬分類: 工作日志
    主站蜘蛛池模板: 国产亚洲精品欧洲在线观看| 亚洲性无码AV中文字幕| 高清免费久久午夜精品| 成人在线免费观看| 亚洲熟妇无码八V在线播放| 午夜免费福利网站| 国产精品亚洲专区无码唯爱网| 四虎成人免费影院网址| 朝桐光亚洲专区在线中文字幕| 日韩一级免费视频| 免费的黄色网页在线免费观看| 免费人成在线观看网站品爱网日本 | 国产aⅴ无码专区亚洲av| 黄色网址在线免费| 亚洲成aⅴ人片在线影院八| 我的小后妈韩剧在线看免费高清版| 亚洲 日韩经典 中文字幕 | 亚洲制服中文字幕第一区| 2019中文字幕免费电影在线播放| 亚洲av成人一区二区三区| 日本一道本高清免费| 亚洲阿v天堂在线2017免费 | 老司机亚洲精品影院| 男人的好免费观看在线视频| 老牛精品亚洲成av人片| 国产亚洲精久久久久久无码77777| 无码日韩精品一区二区免费暖暖| 亚洲福利秒拍一区二区| 免费又黄又爽又猛的毛片 | 久久久久免费视频| 亚洲精品私拍国产福利在线| 国产v精品成人免费视频400条| 18禁亚洲深夜福利人口| 亚洲妇熟XXXX妇色黄| 免费观看男人免费桶女人视频| 人人公开免费超级碰碰碰视频 | 亚洲av日韩av无码av| 亚洲人成网站在线观看青青| 91久久成人免费| 在线观看亚洲网站| 亚洲高清视频在线播放|