SQLTable.SetRelation Method | |
Set a relation from this server to the child server; standard database operations are restricted to those records that match the relation.
Namespace:
VO
Assembly:
VOSQLClasses (in VOSQLClasses.dll) Version: 2.21
Syntax VIRTUAL METHOD SetRelation(
oChild,
uRelation,
cRelation
) AS USUAL CLIPPER
[ClipperCallingConventionAttribute(new string[] { ... })]
public virtual Usual SetRelation(
Usual oChild = default,
Usual uRelation = default,
Usual cRelation = default
)
Request Example
View SourceParameters
- oChild (Optional)
- Type: Usual
The server attached to the child server must be specified as a SQLTable object. If omitted, all relations for this server are removed (the recommended way of doing this is the ClearRelations() method). - uRelation (Optional)
- Type: Usual
The field name representing the relation for the server. An alias can be used for the field name. (See the SQLSelect:FieldInfo() method to set an alias name). - cRelation (Optional)
- Type: Usual
The array of field names representing the relation for the server. The array can also contain complex relational operators (SQL_RELOP_AND, SQL_RELOP_OR, SQL_RELOP_NOT, SQL_RELOP_OPENP, SQL_RELOP_CLOSEP).
Return Value
Type:
Usual
TRUE if successful; otherwise, FALSE.
Remarks
In the SQLTable class, SetRelation() functions identically to SetSelectiveRelation(). The relation is implemented as an extension to the WHERE clause.
Sends a NotifyRecordChange message to the child server, if successful.
Examples
The API can take these forms:
1oSQLCustomer:SetRelation(oSQLOrders, {||_FIELD->CustNo},"CustNo")
2oSQLCustomer:SetRelation(oSQLOrders,#CustNo)
3oSQLCustomer:SetRelation(oSQLOrders, {#LastName,#Initial,#FirstName})
The following relation is equivalent to the set of orders where ORDER.LASTNAME=CUST.LASTNAME OR (ORDER.INITIAL=CUST.INITIAL AND ORDER.FIRSTNAME=CUST.FIRSTNAME):
1oSQLCustomer:SetRelation(oSQLOrders,{#LastName,
2SQL_RELOP_OR,SQL_RELOP_OPENP,#Initial,
3SQL_RELOP_AND,#FirstName,SQL_RELOP_CLOSEP}
See Also