Cannot use ITable directly for output parameters of geoprocessing operations.
上次发布: August 19, 2020ArcGIS for Desktop
漏洞 ID 编号
NIM051925
已提交
December 10, 2009
上次修改时间
February 11, 2025
适用范围
ArcGIS for Desktop
找到的版本
9.3.1
编程语言
C#
操作系统
Windows OS
操作系统版本
XP
状态
Will Not Be Addressed
开发团队已考虑过该问题或请求,并决定不会解决该问题。 问题的“其他信息”部分可能包含进一步说明。
附加信息
We apologize that we were unable to address this issue within the current product support cycle. If the issue continues to affect your work in a supported release, please contact Technical Support.
解决办法
For File based datasources provide the path to the table as a string. For SDE data create a temporary connection as below.Geoprocessor geoProcessor = new Geoprocessor();geoProcessor.OverwriteOutput = true;IPropertySet ps = new PropertySetClass();ps.SetProperty("server", "server");ps.SetProperty("instance", "instance");ps.SetProperty("database", "database");ps.SetProperty("version", "version");ps.SetProperty("user", "user");ps.SetProperty("password", "password");IWorkspaceFactory WorkFact = new SdeWorkspaceFactoryClass();IFeatureWorkspace workspace = (IFeatureWorkspace)WorkFact.Open(ps, 0);IFeatureClass featureClass = workspace.OpenFeatureClass("aa");ITable table = workspace.OpenTable("SOMETABLE");WorkFact.Create(@"C:\temp", "connect.sde", ps, 0);string connectionFile = @"C:\temp\connect.sde";Frequency frequency = new Frequency(); frequency.in_table = featureClass;frequency.out_table = connectionFile + "\\" + ((IDataset)table).Name;frequency.frequency_fields = "OBJECTID";geoProcessor.Execute(frequency, null);for (int i = 0; i < geoProcessor.MessageCount; ++i){ string message = geoProcessor.GetMessage(i); Console.WriteLine(message);}File.Delete(connectionFile);