Есть такой код:
IQueryDef queryDefHi = workspace.createQueryDef();
queryDefHi.setTables(hiAttrTables);
queryDefHi.setSubFields(hiAttrFields);
queryDefHi.setWhereClause(hiAttrWhereClause);
IFeatureDataset featDatasetHi = workspace.openFeatureQuery(sdname, queryDefHi);
Данные содержаться в SDE в FeatureClass-ах. Когда делается запрос к одному слою, то всё нормально отрабатывает, как и положено. Но когда делаю запрос из двух слоёв, которые join-ятся в whereclause, выскакивает ошибка.
К примеру когда :
hiAttrTables = "SDE.Table1"
hiAttrFields = "Table1.OBJECTID,Table1.SHAPE,Table1.Field1"
hiAttrWhereClause = ""
то всё отлично.
А когда
hiAttrTables = "SDE.Table1,SDE.Table2"
hiAttrFields = "Table1.OBJECTID,Table1.SHAPE,Table2.Field1"
hiAttrWhereClause = "Table1.Field1=Table2.Field1"
(замечу, что в hiAttrFields одно поле Shape и одно поле OBJECTID).
А теперь вопрос: можно ли всё-таки джоинить два фичекласса? (но с соблюдением ограничения на одно поле objectid и одно поле SHAPE). Если да, то в чём может быть проблема?