注册 登录
编程论坛 VFP论坛

请教 临时表建立 一对多 临时关系

kofan 发布于 7 天前 16:50, 79 次点击
有两张临时表通过select语句生成。
select * from 表A into cursor temp1
select * from 表B into cursor temp2

表A、表B里有字段“序号”。
想建立temp1 和 temp2的 临时一对多关系

select temp1
set relation to 序号 into temp2
set skip to temp2

运行时,报错提示“temp2”没有与当前工作区建立关系。

打开数据工作期,可以看到temp1 和 temp2 已经建立一对一。
在set skip to temp2 这句报错。

有大神能帮忙看看问题出在哪里吗?
谢谢
1 回复
#2
wengjl6 天前 08:18
【名称】
    SET RELATION命令
【类别】
    命令
【描述】
    在两个打开的表之间建立关系。
【原形】
    SET RELATION TO [eExpression1 INTO nWorkArea1 |cTableAlias1
    [, eExpression2 INTO nWorkArea2 | cTableAlias2 ...]
    [IN nWorkArea | cTableAlias] [ADDITIVE]]
【参数】
    eExpression1
    指定用来在父表和子表之间建立关系的关系表达式。关系表达式通常是子表主控索引的索引表达式。子表的索引可以是单项索引 (.IDX)、多项结构复合索引(.CDX)或独立复合索引。如果是复合索引,应指定适当的索引标识来排序子表。SET ORDER 可用来指定排序子表的索引标识。
    INTO nWorkArea1 | cTableAlias1
    指定子表的工作区编号 (nWorkArea1) 或子表的表别名(cTableAlias1)。
    eExpression2 INTO nWorkArea2 | cTableAlias2 ...
    指定其他关系表达式 (eExpression2)和子表,建立另一个父表和子表之间的关系。在一条 SET RELATION命令中可以创建单个父表与多个子表之间的关系,但是各个关系之间要用逗号隔开。nWorkArea2 指定工作区编号,cTableAlias2指定子表的别名。
    IN nWorkArea
    指定父表的工作区。
    IN cTableAlias
    指定父表的别名。IN 子句允许创建关系时不必首先选择父表工作区。如果SET RELATION 命令中省略了 nWorkArea 和cTableAlias,父表必须在当前选定的工作区中打开。
    ADDITIVE
    保留当前工作区中所有已存在的关系并创建指定的新关系。如果命令中不包括 ADDITIVE子句,将断开当前工作区中的所有关系,然后再创建指定的关系。
【返回值】
    无
【示例】
    无
1