发新话题
打印

[求助] 如何定义主键( 此文章被查看:1035次,被回复:3篇!! )

如何定义主键

我在无状态记录类型中建立了一个Model记录类型,然后和Project记录类型一起完成
只要点击项目就可以显示相关模块的功能.
当前的Model的字段如下
name  short 类型
fproject referece类型
modelno int型
我本想用modelno 做为主键可是在我对DEfect进行保存时就报错
我的Defect上的Model列表处用了如下脚本

    DIM objSession, objQueryDef, operator1, ResultSet, RelatedProjectName
    Set objSession = GetSession()
    RelatedProjectName = GetFieldValue("Project").GetValue()
    Set objQueryDef = objSession.BuildQuery("Model")

    objQueryDef.BuildField("name")

    Set operator1 = objQueryDef.BuildFilterOperator(AD_BOOL_OP_AND)
    operator1.BuildFilter "fproject", AD_COMP_OP_EQ, RelatedProjectName


    Set ResultSet = objSession.BuildResultSet(objQueryDef)

    ResultSet.execute

    Do While ResultSet.MoveNext = AD_SUCCESS

            choices.AddItem(ResultSet.GetColumnValue(1))
    Loop

    choices.Sort
也就是如果我加入上面脚本 我只有用Model的name做主键或者用froject时保存defect不报错,其它都报错
但是我不能用name或者froject做主键,因为我一下项目上有多个模块.然后在增加模块的表单上froject必须允许重复调用呀
请高手指点一下了



© 本文为 轻扬婉儿SCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

Unique Key是在Statelesss record Type中定义的,看看下面的这个抓图就知道了:)

[ 本帖最后由 yunshan 于 2006-12-12 12:44 编辑 ]

附件

UniqueKey.jpg (175.06 KB)

2006-12-12 12:44

UniqueKey.jpg




© 本文为 yunshanSCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

谢谢yunshan
我现在是不知道用哪个字段设为主键
因为我当前系统增加脚本后新增字段不能做主键



© 本文为 轻扬婉儿SCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

回复 #3 轻扬婉儿 的帖子

可以把Name设置为主键,你的这种情况,我在Use CQ to Manage Project(模拟)的文章后面,已经有个详细的描述,可以去看看。
其实定义主键的目的是用来唯一的标识表中记录的,有可它这个表中的记录在这个主键字段上就不能够重复。

© 本文为 yunshan 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

发新话题