WTSupported in traditional Synergy on Windows
WNSupported in Synergy .NET on Windows
USupported on UNIX
VSupported on OpenVMS
namespace Synergex.SynergyDE.Select
public sealed class JoinSelect

The JoinSelect class object is required when using Joins. The Join() method in the Select class converts a Select object into a JoinSelect object. (Note that a Join operation must be included somewhere in the Select.) See also Joining data from multiple sources.



public GetEnumerator(), @RowEnumerator

Creates and returns a RowEnumerator object. See Synergex.SynergyDE.Select.RowEnumerator.


public GetRowArrayIndex(record), n

Returns the index of the specified record (a) in any Rows object created by that RowEnumerator. This index remains static throughout the life of the JoinSelect object. Using GetRowArrayIndex() along with the indexer is an alternative to using the Rows.Fill() method. If the specified rec passed to GetRowArrayIndex() does not exactly match a record specified in the Join, an INVARG error (“Invalid argument”) is generated.


No record updates or deletes are available via the JoinSelect object.

The Select becomes a JoinSelect when the Join() method is applied to the Select object. The on parameter is part of the From.InnerJoin() or From.LeftJoin() method. For example, the following Select object doesn’t contain a Join:

selObj = new Select( fromObj )   

In the following example, the JoinSelect object starts out like a Select but includes Join(). If there is no InnerJoin() or LeftJoin(), an INVOPER error (“JoinSelect requires one or more From.InnerJoin or From.LeftJoin specifications”) is generated.

joinObj = new Select( fromOrders.InnerJoin( fromOrderdetails, 
&         (On)(order.OrderID == orderdetail.OrderID) ) ).Join()

See also

Joining data from multiple sources.