join and relate

Connect to Geodatabase (SDE)
    Dim pPropset As IPropertySet
    Set pPropset = New PropertySet
    With pPropset
      .SetProperty "Server", "griot"
      .SetProperty "Instance", "5151"
      .SetProperty "Database", ""
      .SetProperty "user", "shell"
      .SetProperty "password", "shell"
      .SetProperty "version", "SDE.DEFAULT"
    End With
        
    Dim pFact As IWorkspaceFactory
    Set pFact = New SdeWorkspaceFactory
   
    ' Open the Feature Dataset
    Dim pWorkspace As IWorkspace
    Set pWorkspace = pFact.Open(pPropset, Me.hWnd)
   
    ' Create Feature Workspace
    Dim pFeatureWorkspace As IFeatureWorkspace
    Set pFeatureWorkspace = pWorkspace
   
    ' Create Query Definition
    Dim pQueryDef As IQueryDef
    Set pQueryDef = pFeatureWorkspace.CreateQueryDef
   
    ' Provide list of tables to join
    pQueryDef.Tables = "datesjoin,dudatest"
   
    ' Retrieve the fields from all  tables
    pQueryDef.SubFields = "sde.datesjoin.dt_field = sde.dudates.dt_field"
   
    ' Set up join
    pQueryDef.WhereClause = "datesjoin.dt_field = dudates.dt_field"
   
    ' Create FeatureDataset. Note the use of .OpenFeatureQuery. The
    ' Name "MyJoin" is the name of the result of the query def
    ' and is used in place of a Feature Class name.
    Dim pFeatureDataset As IFeatureDataset
    Set pFeatureDataset = pFeatureWorkspace.OpenFeatureQuery("MyJoin", pQueryDef)
   
    'Open Layer to test against
    Dim pFeatureClassContainer As IFeatureClassContainer
    Set pFeatureClassContainer = pFeatureDataset
     
    Dim pFeatureClass As IFeatureClass
    Set pFeatureClass = pFeatureClassContainer.ClassByName("MyJoin")

你可能感兴趣的:(JOIN)