<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to change programmatically the data source (FeatureClass-property) of IFeatureLayer with DataSourceType = &amp;quot;Query Feature Class&amp;quot; in ArcMap 10.3 ? in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/how-to-change-programmatically-the-data-source/m-p/506760#M13608</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don't know if you are still looking for a solution here, but here is how I set data source of Query Layers programmatically:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ISqlWorkspace sw = featureWS as ISqlWorkspace;&lt;/P&gt;&lt;P&gt;string query = string.Format("SELECT * FROM {0}", tableName);&lt;/P&gt;&lt;P&gt;IQueryDescription queryDesc = sw.GetQueryDescription(query);&lt;/P&gt;&lt;P&gt;queryDesc.OIDFields = tableID; string queryClassName = "";&lt;/P&gt;&lt;P&gt;//get a unique name for this Query Class&lt;/P&gt;&lt;P&gt;sw.CheckDatasetName(tableName, queryDesc, out queryClassName);&lt;/P&gt;&lt;P&gt;IFeatureClass featureClass = sw.OpenQueryClass(queryClassName, queryDesc) as IFeatureClass;&lt;/P&gt;&lt;P&gt;featureLayer.FeatureClass = featureClass;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 28 Sep 2016 13:41:51 GMT</pubDate>
    <dc:creator>OlivierDamanet</dc:creator>
    <dc:date>2016-09-28T13:41:51Z</dc:date>
    <item>
      <title>How to change programmatically the data source (FeatureClass-property) of IFeatureLayer with DataSourceType = "Query Feature Class" in ArcMap 10.3 ?</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/how-to-change-programmatically-the-data-source/m-p/506759#M13607</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;I have a Feature-Layer pointing to an Oracle Table (user-maintained rowid) with spatial type "SDO_GEOMETRY". The Oracle Table is not SDE-registered. By both loading the table from ArcCatalog into ArcMap or using ArcTool MakeQueryLayer I get a layer with data type "Query Feature Class".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG alt="" class="image-1 jive-image" height="329" src="https://community.esri.com/legacyfs/online/191228_pastedImage_4.png" style="width: 404px; height: 329.331px;" width="404" /&gt;&lt;/P&gt;&lt;P&gt;Map operations e.g. zooming, panning, selecting etc. work.&lt;/P&gt;&lt;P&gt;My issue is changing the data source programmatically (c#, ArcMap 10.3) either results to exceptions or a layer with data type "Feature Class" and consecutively drawing errors in ArcMap when loading additional layers and executing map operations e.g. zooming, panning, selecting etc:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG alt="" class="image-2 jive-image" height="155" src="https://community.esri.com/legacyfs/online/191229_pastedImage_10.png" style="width: 310px; height: 155px;" width="310" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Drawing errors also occur when I create this layer by ArcTool MakeFeatureLayer although when loaded stand-alone, i.e. no additional layer are load in TOC, map operations e.g. zooming, panning, selecting etc. work without any errors.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Input: IFeatureWorkspace featureWS (cast from IWorkspace with Type = esriRemoteDatabaseWorkspace)&lt;/P&gt;&lt;P&gt;Input: IFeatureLayer pFeatureLayer &lt;/P&gt;&lt;UL&gt;&lt;LI&gt;DataSourceType: Query Feature Class&lt;/LI&gt;&lt;LI&gt;FeatureClass: with AliasName "schema1.%Table1" (what does the character "%" mean ?? / where does this character come from ?? My table's name is "schema1.Table1" !!)&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#region Alternative 1: IQueryDef =&amp;gt; System.Runtime.InteropServices.COMException (0x80050140): Abstract Data Types not supported&lt;/P&gt;&lt;P&gt;IQueryDef queryDef = featureWS.CreateQueryDef();&lt;/P&gt;&lt;P&gt;queryDef.Tables = "schema1.Table1";&lt;/P&gt;&lt;P&gt;queryDef.SubFields = "*";&lt;/P&gt;&lt;P&gt;queryDef.WhereClause = string.Empty;&lt;/P&gt;&lt;P&gt;IFeatureDataset pFeatureQuery =&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureWS.OpenFeatureQuery("Table1", queryDef);&lt;/P&gt;&lt;P&gt;pFeatureLayer.FeatureClass = pFeatureQuery as IFeatureClass;&lt;/P&gt;&lt;P&gt;#endregion&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#region Alternative 2: ITable zu IDataset =&amp;gt; Data Source Type = FeatureClass =&amp;gt; Drawing Error in ArcMap&lt;/P&gt;&lt;P&gt;ITable table = featureWS.OpenTable("schema1.Table1");&lt;/P&gt;&lt;P&gt;IDataset dataSet = table as IDataset;&lt;/P&gt;&lt;P&gt;pFeatureLayer.FeatureClass = dataSet as IFeatureClass;&lt;/P&gt;&lt;P&gt;pFeatureLayer.DataSourceType = "Query Feature Class";&lt;/P&gt;&lt;P&gt;#endregion&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So my question is how to change programmatically the data source (FeatureClass-property) of IFeatureLayer with DataSourceType = "Query Feature Class" in ArcMap 10.3 avoiding the change of DataSourceType, any exceptions and drawing errors ?&lt;/P&gt;&lt;P&gt;Any help is appreciated !&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Mar 2016 16:49:43 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/how-to-change-programmatically-the-data-source/m-p/506759#M13607</guid>
      <dc:creator>ThomasKoch</dc:creator>
      <dc:date>2016-03-16T16:49:43Z</dc:date>
    </item>
    <item>
      <title>Re: How to change programmatically the data source (FeatureClass-property) of IFeatureLayer with DataSourceType = "Query Feature Class" in ArcMap 10.3 ?</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/how-to-change-programmatically-the-data-source/m-p/506760#M13608</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don't know if you are still looking for a solution here, but here is how I set data source of Query Layers programmatically:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ISqlWorkspace sw = featureWS as ISqlWorkspace;&lt;/P&gt;&lt;P&gt;string query = string.Format("SELECT * FROM {0}", tableName);&lt;/P&gt;&lt;P&gt;IQueryDescription queryDesc = sw.GetQueryDescription(query);&lt;/P&gt;&lt;P&gt;queryDesc.OIDFields = tableID; string queryClassName = "";&lt;/P&gt;&lt;P&gt;//get a unique name for this Query Class&lt;/P&gt;&lt;P&gt;sw.CheckDatasetName(tableName, queryDesc, out queryClassName);&lt;/P&gt;&lt;P&gt;IFeatureClass featureClass = sw.OpenQueryClass(queryClassName, queryDesc) as IFeatureClass;&lt;/P&gt;&lt;P&gt;featureLayer.FeatureClass = featureClass;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Sep 2016 13:41:51 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/how-to-change-programmatically-the-data-source/m-p/506760#M13608</guid>
      <dc:creator>OlivierDamanet</dc:creator>
      <dc:date>2016-09-28T13:41:51Z</dc:date>
    </item>
  </channel>
</rss>

