点击或拖拽改变大小

SQLTable.SetRelation 方法

X#
从此服务器到子服务器设置一个关系;标准数据库操作仅限于与关系匹配的记录。

命名空间:  XSharp.VO.SDK
程序集:  XSharp.VOSQLClasses (在 XSharp.VOSQLClasses.dll 中) 版本:2.22 GA
语法
 VIRTUAL METHOD SetRelation(
	oChild,
	uRelation,
	cRelation
) AS USUAL CLIPPER
查看代码

参数

oChild (Optional)
类型:__Usual
必须指定为 SQLTable 对象的子服务器的附加服务器。 如果省略,将删除此服务器的所有关系(建议使用 ClearRelations() 方法)。
uRelation (Optional)
类型:__Usual
表示服务器关系的字段名。可以使用字段名的别名(参见 SQLSelect:FieldInfo() 方法设置别名)。
cRelation (Optional)
类型:__Usual
表示服务器关系的字段名的数组。数组也可以包含复杂的关系运算符(SQL_RELOP_AND,SQL_RELOP_OR,SQL_RELOP_NOT,SQL_RELOP_OPENP,SQL_RELOP_CLOSEP)。

返回值

类型:__Usual
如果成功则返回 TRUE;否则返回 FALSE。
备注
在SQLTable类中,SetRelation()的功能与SetSelectiveRelation()相同。关系被实现为WHERE子句的扩展。 如果成功,将向子服务器发送NotifyRecordChange消息。
示例
API可以采用以下形式:
X#
1oSQLCustomer:SetRelation(oSQLOrders, {||_FIELD->CustNo},"CustNo")
2oSQLCustomer:SetRelation(oSQLOrders,#CustNo)
3oSQLCustomer:SetRelation(oSQLOrders, {#LastName,#Initial,#FirstName})
以下关系等同于订单集,其中
ORDER.LASTNAME=CUST.LASTNAME OR (ORDER.INITIAL=CUST.INITIAL AND ORDER.FIRSTNAME=CUST.FIRSTNAME):
X#
1oSQLCustomer:SetRelation(oSQLOrders,{#LastName,;
2    SQL_RELOP_OR,SQL_RELOP_OPENP,#Initial,;
3    SQL_RELOP_AND,#FirstName,SQL_RELOP_CLOSEP};
4)
参见