Hello everyone,
I am currently opening an SDE feature class using "OpenFeatureClassFromString"
pathOutput = "C:\\SDEConnections\\EditingDatabase.sde\\FeatureDataset\\FeatureClass"
Dim pFeatureClass As IFeatureClass
pFeatureClass = gputilities.OpenFeatureClassFromString(pathOutput)
I would like to open a IWorkspaceFactory and a IWorkSpace and then open the feature class from the workspace.
Dim WorkspaceFactory As IWorkspaceFactory = New WorkspaceFactory()
Dim Workspace As IWorkspace = WorkspaceFactory.OpenFromFile(pathWorkspaceOutput, 0)
????
Thanks
Hi,
first you should open your sde-workspace and then cast this workspace to IFeatureWorkspace to open your feature class.
1.) open Workspace: (Connecting to a workspace using IPropertySet )
public IWorkspace open_ArcSDE_Workspace(string server, string instance, string user, string password, string database, string version) { ESRI.ArcGIS.esriSystem.IPropertySet propertySet = new ESRI.ArcGIS.esriSystem.PropertySetClass(); propertySet.SetProperty("SERVER", server); propertySet.SetProperty("INSTANCE", instance); propertySet.SetProperty("DATABASE", database); propertySet.SetProperty("USER", user); propertySet.SetProperty("PASSWORD", password); propertySet.SetProperty("VERSION", version); IWorkspaceFactory workspaceFactory = new ESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactoryClass(); return workspaceFactory.Open(propertySet, 0); }
2.) open feature class
IFeatureClass pFClass = ((IFeatureWorkspace)mySdeWorkspace).OpenFeatureClass(name);
How do you write this line in vb.net:
IFeatureClass pFClass = ((IFeatureWorkspace)mySdeWorkspace).OpenFeatureClass(name);
Hello Jose,
I'm no vb.net-guru but I think casting in vb.net is done by using DirectCast/TryCast:
1. if you're sure that casting will succeed (otherwise it throws an exception so use an exception handler) use DirectCast:
Dim pFWsp as IFeatureWorkspace= DirectCast(mySdeWorkspace, IFeatureWorkspace)
Dim pFClass as IFeatureClass = pFWsp.OpenFeatureClass(name)
2. if you're not sure - use TryCast
Dim pFWsp as IFeatureWorkspace= TryCast(mySdeWorkspace, IFeatureWorkspace)
if pFWsp IsNot Nothing then
Dim pFClass as IFeatureClass = pFWsp.OpenFeatureClass(name)
...
End if
i Frank,
This is how I did it:
Dim muWorkspaceEdit As IMultiuserWorkspaceEdit = CType(pFeatureWorkspace, IMultiuserWorkspaceEdit)
Dim pworkspaceEdit As IWorkspaceEdit = CType(pFeatureWorkspace, IWorkspaceEdit)