尽展体育的魅力,创造历史辉煌!2008让我们为奥运加油,为中国加油!
 
 奥运金牌榜
  
  高级搜索
  首页   技术论坛   博客   产品中心   资源中心   银弹在线   商城  

 
  本文的标签
EOS知识库 (收录437篇)EOSServer (收录123篇)
  SOA2007 - SOA实践
我们何时迈向SOA
——SOA在中国的整体发展现状究竟如何?
我们如何迈向SOA
——中国企业如何迈出实施SOA的第一步?
我们应采用何种技术
——SOA国际标准SCA/SDO的具体内涵?
我们还需要何种技能
——SOA将如何改变系统架构设计以及项目管理过程?

EOSUniqueTable中如何区分不同表的相同主键名


发布时间:2007-06-19 10:06:59 作者:cservice 出处: 语言:中文 阅读次数:1038

【适用范围】

EOS5.x

 
【问题描述和定位】

EOSUniqueTable中定义了通过BL_getPrimaryKey获得的主键初始化值,如果不同表的主键名都是一样的话,EOSUniqueTable中怎么区分是哪个表的主键呢?


【解决方案和步骤】

方案一:在EOS5.1.2及后续版本,如果多个表中主键相同的话,可以这样做:先在EOSUniqueTable表中配置几条数据,取不同的name,然后,在调用BL_gerPrimaryKey的时候用两个参数,(请见Studio联机帮助BL_gerPrimaryKey示例2:获取唯一序号作为客户表的主键)

示例2:获取唯一序号作为客户表的主键。

ID

输入输出

节点类型

节点路径

描述

1

输入/输出

EOS Field

CUST/CUSTID

存放结果

2

输入/输出

Constant

customerID

主键对应的序列号名称

注意:此时CUSTID节点的值是根据系统表EOSUniqueTable中name为customerID的序列号获取的。
 

方案二:EOS主键获得的方式实际上是根据一个名称来获得的,通过 com.primeton.tp.core.api.Unique.nextLong(sequence名) 可以获得。BL_getPrimaryKey调用时候是根据字段的名称获得的,因此如果不同表的相同主键名字段就会通过同一个sequence名获得,不过,不同不会发生主键冲突的问题。

如果你想要分开,可以写一个自己的getPrimaryKey的bl方法,然后调用上面eos提供的api去获取,你可以把表名和字段名拼在一起做为sequence名
 



【备注】

 评论 查看全部评论
 
asdf 于 2007-08-28
中国石材超市网是全球最大的石材价格石材资讯石材产品的发布地.由福建上百家石材企业共同创建,是中国石材行业价格最透明的商城.
中国石材超市网 主要有石材产品展示石材最新产品石材稀有产品石材特价产品石材行业资讯石材展会信息石材安装技术石材常识石材客户中心等几个大类,石材产品主要包含:大理石花岗岩马赛克砂岩人造石文化石等,对各种石材都有全球最透明的价格,最详细的介绍,最全的石材信息。是石材行业的一个里程碑。中国石材超市网

 

声明:本栏目转载文字、造型、样式、图形及程序如有来自网络,版权归原作者或首发媒体所有,欢迎任何个人访问或者转载,若有作者及出处有误,请来信说明,我们将及时更正。