Hello everyone,
I am testing the code below and it does not change the type of the field GLOBALID from GlobalId to GUID
Environment:
- ArcGIS 10.2
- SDE based on Oracle 11G
- Visual Studio 2010.
' Converts a GlobalID field to a GUID field.
Public Sub ConvertGlobalIdToGuid(ByVal workspace As IWorkspace, ByVal datasetName As String)
' Open the table.
Dim featureWorkspace As IFeatureWorkspace = CType(workspace, IFeatureWorkspace)
Dim table As ITable = featureWorkspace.OpenTable(datasetName)
' Get the GlobalID field.
Dim classEx As IClassEx = CType(table, IClassEx)
If Not classEx.HasGlobalID Then
Throw New Exception(String.Format("No GlobalID column in table: {0}.", datasetName))
End If
Dim globalIDFieldName As String = classEx.GlobalIDFieldName
Try
' Convert the GlobalID column to a GUID column.
Dim classSchemaEditEx As IClassSchemaEditEx = CType(table, IClassSchemaEditEx)
classSchemaEditEx.UnregisterGlobalIDColumn(globalIDFieldName)
Catch ex As Exception
Console.WriteLine("Could Not Open Geodatabase")
Console.WriteLine("{0} ", ex.Message)
End Try
End Sub
This is actually mind boggling. It looks like it worked, and behaves like it worked until you close the connection. Next time in, the field is a GLOBALID again and not a GUID.