首页 > 代码库 > 锁定方式SDE中插入要素

锁定方式SDE中插入要素

[C#]

public static void LoadOnlyModeInsert(IFeatureClass featureClass, List < IGeometry >    geometryList){    // Cast the feature class to the IFeatureClassLoad interface.    IFeatureClassLoad featureClassLoad = (IFeatureClassLoad)featureClass;    // Acquire an exclusive schema lock for the class.    ISchemaLock schemaLock = (ISchemaLock)featureClass;    try    {        schemaLock.ChangeSchemaLock(esriSchemaLock.esriExclusiveSchemaLock);        // Enable load-only mode on the feature class.        featureClassLoad.LoadOnlyMode = true;        using(ComReleaser comReleaser = new ComReleaser())        {            // Create the feature buffer.            IFeatureBuffer featureBuffer = featureClass.CreateFeatureBuffer();            comReleaser.ManageLifetime(featureBuffer);            // Create an insert cursor.            IFeatureCursor insertCursor = featureClass.Insert(true);            comReleaser.ManageLifetime(insertCursor);            // All of the features to be created are classified as Primary Highways.            int typeFieldIndex = featureClass.FindField("TYPE");            featureBuffer.set_Value(typeFieldIndex, "Primary Highway");            foreach (IGeometry geometry in geometryList)            {                // Set the feature buffer‘s shape and insert it.                featureBuffer.Shape = geometry;                insertCursor.InsertFeature(featureBuffer);            }            // Flush the buffer to the geodatabase.            insertCursor.Flush();        }    }    catch (Exception)    {        // Handle the failure in a way appropriate to the application.    }    finally    {        // Disable load-only mode on the feature class.        featureClassLoad.LoadOnlyMode = false;        // Demote the exclusive schema lock to a shared lock.        schemaLock.ChangeSchemaLock(esriSchemaLock.esriSharedSchemaLock);    }}

锁定方式SDE中插入要素