修改Project中的表名及字段名
开发了大半,遇到这样一个需求:
1.自己创建的表,要加上公司的简称做为前缀;
2.自己创建的表的字段不需要添加公司的简称做为前缀;
3.在系统原有的表上添加的字段要添加公司的简称做为前缀。
创建的表太多了,一个个修改是重体力活,于是写了个Job来完成,在这里记录一下:
{
#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中的表名及字段名相关推荐
- % mysql 代表_MySQL中的星号(*)和百分号(%)代表表示什么,MySQL的库名、表名、字段名、字段值是否区分大...
1.MySQL中的星号(*)和百分号(%)代表表示什么 星号(*):表示全部的意思. select * from table_name;(查询表table_name中所有的数据) 百分号(%):表示通 ...
- 数据库操作--批量修改数据库表名及字段名大小写转换及首字母大写+删除没有数据无用的表...
1.修改表名为小写 declare @sql varchar(300)--,@rowcount varchar(10),@dyncnum int declare @tablename varchar( ...
- pgsql 一键修改PGSQL表名、字段名为小写
一键修改PGSQL表名.字段名为小写 由MySQL或者Oracle无脑迁移到PostgreSQL时候多半会踩到的坑就是pgsql对于字段名或者表名中大小写问题.因为pgsql在sql的prepare时 ...
- 修改字段类型 Alter table 表名 modify 字段名 字段类型mysql数据库概念及入门语句...
1.数据库的概念 数据库(DataBase,DB)是一个长期存储在计算机内的.有组织的.有共享的.统一管理的数据集合.她是一个按数据结构来存储和管理数据的计算机软件系统.数据库的概念实际包括两层意思: ...
- MySQL修改表名和字段名大小写
记录一下,根据工作中项目交付要求,要将MySQL数据库中的表名和字段名中做一个规范,其中就有将表名和字段名统一做小写处理. 废话不多说,直接上MySQL脚本: 批量修改数据库下的表名(大写改小写): ...
- oracle 查询表字段6,Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名、...
--创建用户 create user "用户名" identitied by "密码": --给自己修改密码 查询所有表名: select t.table_na ...
- Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名...
查询所有表名: select t.table_name from user_tables t; 查询所有字段名: select t.column_name from user_col_comments ...
- Oracle中如何查询一个表的所有字段名和数据类型
Oracle中如何查询一个表的所有字段名和数据类型 查询语法 select A.COLUMN_NAME,A.DATA_TYPE from user_tab_columns A where TABLE_ ...
- ACCESS中写SQL语句时尽量把表名和字段名用中括号括起来
ACCESS中写SQL语句时尽量把表名和字段名用中括号括起来,一般都要写成: [TableName].FieldName,否则较长的中文名表名可能会被不识别.
最新文章
- matlab norm 范式
- 【BZOJ】3339: Rmq Problem 3585: mex(线段树+特殊的技巧)
- dlib dll load failed 找不到指定的模块
- Python urllib与requests、XML和HTMLParser
- Java 连接 timesten
- mysql 商品属性_MySQL产品属性表设计
- Java中的工厂方法模式
- phalcon使用registerNamespaces注册第三方类库文件
- PyCharm常用快捷键和设置
- 熊猫烧香病毒-源码学习
- python爬虫需要学哪些知识_Python爬虫需要学习那些东西?
- 印刷点阵字体_印刷术—类型族,分类和组合字体
- 7、51单片机——74HC595、74HC573、字模和点阵屏详解
- ps怎么把黑白照片变成彩色?ps把儿童黑白照变彩色教程
- 克鲁斯卡尔(Kruskal)
- Photoshop 2020 更新内容
- python输入esc退出循环_如何用Esc键停止GhPython或者RhinoPython脚本运行
- MySQL的普通索引和唯一索引到底什么区别?
- 【实验五 一维数组】7-9 sdut-C语言实验- 排序
- docker自动领取epic免费游戏之一劳永逸