Quantcast
Channel: Forums - ArcObjects SDKs
Viewing all articles
Browse latest Browse all 1374

Data Joins and Relationships

$
0
0
Say I have the two attached tables that I want to join together in code using the "J_Fld". As you can see, it is a one-to-many join and there will be one row in the left table that does not have a match in the right table. I want to get a result that returns "all-results" like the join options in ArcMap (so include the one without a relationship). If I used a QueryDefinition I get everything but the one without a relationship.

The API has code for a IRelationshipClass:
Code:

// Build a memory relationship class.
Type memRelClassFactoryType = Type.GetTypeFromProgID(
    "esriGeodatabase.MemoryRelationshipClassFactory");
IMemoryRelationshipClassFactory memRelClassFactory =
    (IMemoryRelationshipClassFactory)Activator.CreateInstance(memRelClassFactoryType)
    ;
IRelationshipClass relationshipClass = memRelClassFactory.Open("ParcelsOwners",
    parcelsFeatureClass, "PARCEL_ID", (IObjectClass)ownersTable, "PARCEL_ID",
    "Is Owned By", "Owns", esriRelCardinality.esriRelCardinalityOneToOne);

// Open the RelQueryTable as a feature class.
Type rqtFactoryType = Type.GetTypeFromProgID("esriGeodatabase.RelQueryTableFactory");
IRelQueryTableFactory rqtFactory = (IRelQueryTableFactory)Activator.CreateInstance
    (rqtFactoryType);
ITable relQueryTable = (ITable)rqtFactory.Open(relationshipClass, false, null, null,
    String.Empty, false, false);

If I change the cardinality to "esriRelCardinalityManyToMany" the return table only has 4 rows in it. It looks like no matter what it returns a one-to-one and takes a "first case wins" approach.

I was thinking the way to go about it is IRelationshipClass.GetRelationshipForObject, but it doesn't seem to like being passed a table row as an object.

Any ideas?
Attached Thumbnails
Click image for larger version

Name:	left.png‎
Views:	N/A
Size:	3.6 KB
ID:	27393   Click image for larger version

Name:	right.png‎
Views:	N/A
Size:	2.6 KB
ID:	27394  

Viewing all articles
Browse latest Browse all 1374

Trending Articles