开发了大半,遇到这样一个需求:
1.自己创建的表,要加上公司的简称做为前缀;
2.自己创建的表的字段不需要添加公司的简称做为前缀;
3.在系统原有的表上添加的字段要添加公司的简称做为前缀。
创建的表太多了,一个个修改是重体力活,于是写了个Job来完成,在这里记录一下:

static void ModifyTableAndFieldNameOfSomeProject(Args _args)
{
    #TreeNodeSysNodeType
    #define.prefix('PF')
    #define.ProjectName('ProjectName')
    TreeNode                projectListNode         = SysTreeNode::getPrivateProject();
    ProjectGroupNode        pNode;
    //TreeNode                projectSuperNode,projectGroupNode;
    TreeNodeIterator        projectIt;//,projectGroupIt;
    ProjectNode             projectNode             = projectListNode.AOTfindChild(#ProjectName);

    //Only has current Layers?
    Boolean   onlyCurrentLayer(TreeNode _treeNode)
    {
        int             layers = _treeNode.applObjectLayerMask();
        UtilEntryLevel  level;
        UtilEntryLevel  currentLevel;
        int             i,j=0;
    ;
        for(i=0;i<enumcnt(UtilEntryLevel);i++)
        {
            if (layers & (1 << i))
            {
                currentLevel = i;
                j++;
            }
        }
        if(j == 1 && currentLevel == infolog.currentAOLayer())
            return true;

        return false;

    }
    //Modify Classes and Tables
    void modify(TreeNode _treeNode)
    {
        str             property;
        TreeNode        childTreeNode;
        ;
        switch(_treeNode.sysNodeType())
        {
            case #NT_DBTABLE:
            {
                //Modify TableName
                if(onlyCurrentLayer(_treeNode))
                {
                    if(substr(tableId2Name(_treeNode.applObjectId()),1,2)!=#prefix)
                    {
                       _treeNode.AOTsetProperty("Name",#Prefix+tableId2Name(_treeNode.applObjectId()));

                    }
                }

                //Modify field Name
                childTreeNode = _treeNode.AOTfirstChild().AOTfirstChild();
                while(childTreeNode)
                {
                    if(!onlyCurrentLayer(_treeNode) && onlyCurrentLayer(childTreeNode))
                    {
                        if(substr(fieldId2Name(_treeNode.applObjectId(),childTreeNode.applObjectId()),1,2)!=#prefix)
                        {
                            childTreeNode.AOTsetProperty("Name",#Prefix+fieldId2Name(_treeNode.applObjectId(),childTreeNode.applObjectId()));
                            childTreeNode.AOTcompile(1);
                            childTreeNode.AOTsave();
                        }
                    }
                    childTreeNode = childTreeNode.AOTnextSibling();

                }
                //Save
                _treeNode.AOTcompile(1);
                _treeNode.AOTsave();
                //Synchronize Table
                appl.dbSynchronize(SysDictTable::newTreeNode(_treeNode).id());
                break;
            }
            default:
                break;
        }
    }
    //Get the classes and tables to be modify
    void  getElementsToBeModified(TreeNode _treeNode)
    {
        TreeNodeIterator        projectGroupIt;
        TreeNode                projectSuperNode,projectGroupNode;
        if(!_treeNode)
            return;
        //Project Group
        if(_treeNode.sysNodeType() == #NT_PROJECT_GROUP)
        {
            projectGroupIt      = _treeNode.AOTiterator();
            projectGroupNode    = projectGroupIt.next();
            while(projectGroupNode != null)
            {

                getElementsToBeModified(projectGroupNode);
                projectGroupNode = projectGroupIt.next();
            }
        }

            info(_treeNode.AOTname());
            modify(_treeNode);

    }
    ;
    projectNode     =  projectNode.getRunNode();
    projectIt       =  projectNode.AOTiterator();
    pNode           =  projectIt.next();

    while(pNode)
    {
        //info(pNode.AOTname());
        getElementsToBeModified(pNode);
        pNode = projectIt.next();

    }
}

转载于:https://www.cnblogs.com/Farseer1215/archive/2008/04/10/1146583.html

修改Project中的表名及字段名相关推荐

  1. % mysql 代表_MySQL中的星号(*)和百分号(%)代表表示什么,MySQL的库名、表名、字段名、字段值是否区分大...

    1.MySQL中的星号(*)和百分号(%)代表表示什么 星号(*):表示全部的意思. select * from table_name;(查询表table_name中所有的数据) 百分号(%):表示通 ...

  2. 数据库操作--批量修改数据库表名及字段名大小写转换及首字母大写+删除没有数据无用的表...

    1.修改表名为小写 declare @sql varchar(300)--,@rowcount varchar(10),@dyncnum int declare @tablename varchar( ...

  3. pgsql 一键修改PGSQL表名、字段名为小写

    一键修改PGSQL表名.字段名为小写 由MySQL或者Oracle无脑迁移到PostgreSQL时候多半会踩到的坑就是pgsql对于字段名或者表名中大小写问题.因为pgsql在sql的prepare时 ...

  4. 修改字段类型 Alter table 表名 modify 字段名 字段类型mysql数据库概念及入门语句...

    1.数据库的概念 数据库(DataBase,DB)是一个长期存储在计算机内的.有组织的.有共享的.统一管理的数据集合.她是一个按数据结构来存储和管理数据的计算机软件系统.数据库的概念实际包括两层意思: ...

  5. MySQL修改表名和字段名大小写

    记录一下,根据工作中项目交付要求,要将MySQL数据库中的表名和字段名中做一个规范,其中就有将表名和字段名统一做小写处理. 废话不多说,直接上MySQL脚本: 批量修改数据库下的表名(大写改小写): ...

  6. oracle 查询表字段6,Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名、...

    --创建用户 create user "用户名" identitied by "密码": --给自己修改密码 查询所有表名: select t.table_na ...

  7. Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名...

    查询所有表名: select t.table_name from user_tables t; 查询所有字段名: select t.column_name from user_col_comments ...

  8. Oracle中如何查询一个表的所有字段名和数据类型

    Oracle中如何查询一个表的所有字段名和数据类型 查询语法 select A.COLUMN_NAME,A.DATA_TYPE from user_tab_columns A where TABLE_ ...

  9. ACCESS中写SQL语句时尽量把表名和字段名用中括号括起来

    ACCESS中写SQL语句时尽量把表名和字段名用中括号括起来,一般都要写成: [TableName].FieldName,否则较长的中文名表名可能会被不识别.

最新文章

  1. matlab norm 范式
  2. 【BZOJ】3339: Rmq Problem 3585: mex(线段树+特殊的技巧)
  3. dlib dll load failed 找不到指定的模块
  4. Python urllib与requests、XML和HTMLParser
  5. Java 连接 timesten
  6. mysql 商品属性_MySQL产品属性表设计
  7. Java中的工厂方法模式
  8. phalcon使用registerNamespaces注册第三方类库文件
  9. PyCharm常用快捷键和设置
  10. 熊猫烧香病毒-源码学习
  11. python爬虫需要学哪些知识_Python爬虫需要学习那些东西?
  12. 印刷点阵字体_印刷术—类型族,分类和组合字体
  13. 7、51单片机——74HC595、74HC573、字模和点阵屏详解
  14. ps怎么把黑白照片变成彩色?ps把儿童黑白照变彩色教程
  15. 克鲁斯卡尔(Kruskal)
  16. Photoshop 2020 更新内容
  17. python输入esc退出循环_如何用Esc键停止GhPython或者RhinoPython脚本运行
  18. MySQL的普通索引和唯一索引到底什么区别?
  19. 【实验五 一维数组】7-9 sdut-C语言实验- 排序
  20. docker自动领取epic免费游戏之一劳永逸

热门文章

  1. 3889=神奇的函数
  2. 中文 iOS/Mac 开发博客列表
  3. gparted 不能起作用的时候,用fdisk
  4. 从 Android 静音看正确的查找 bug 的姿势
  5. bnu 34986 Football on Table(数学+暴力)
  6. 1.4操作系统的变革
  7. php curl基本操作
  8. SAP FI模块与SD、MM的接口配置基本方法
  9. cnn stride and padding_卷积神经网络(CNN) 第 4 课(上)
  10. POJ2553 强连通出度为0的应用