public void GetDifferences1(IWorkspace iworkspace_0, string string_0, string string_1, TreeNodeCollection treeNodeCollection_0, IList ilist_0) { try { this.bool_0 = false; IFeatureWorkspace iworkspace0 = iworkspace_0 as IFeatureWorkspace; IVersionedWorkspace versionedWorkspace = iworkspace_0 as IVersionedWorkspace; IFeatureWorkspace featureWorkspace = versionedWorkspace.FindVersion(string_0) as IFeatureWorkspace; IFeatureWorkspace featureWorkspace1 = versionedWorkspace.FindVersion(string_1) as IFeatureWorkspace; ilist_0.Clear(); DateTime now = DateTime.Now; ilist_0.Add(string.Concat("Version Difference Report - ", now.ToLongDateString())); ilist_0.Add(string.Concat("Parent/Grandparent/.. Version: ", string_0)); ilist_0.Add(string.Concat("Child Version: ", string_1)); ilist_0.Add("________________________________________________________"); this.CheckDatasetForDifferences(treeNodeCollection_0, iworkspace0, featureWorkspace, featureWorkspace1, string_0, string_1, ilist_0); if (!this.bool_0) { ilist_0.Add("No differences found."); } } catch { } }
private bool method_7(IVersionedWorkspace iversionedWorkspace_0, IEnumVersionInfo ienumVersionInfo_0, string string_0, bool bool_2, bool bool_3) { bool flag = true; try { for (IVersionInfo i = ienumVersionInfo_0.Next(); i != null; i = ienumVersionInfo_0.Next()) { if (!bool_2) { if (this.method_8(iversionedWorkspace_0.FindVersion(i.VersionName) as IVersionEdit, string_0, bool_2, bool_3)) { this.method_7(iversionedWorkspace_0, i.Children, i.VersionName, bool_2, bool_3); } } else if (!this.method_7(iversionedWorkspace_0, i.Children, i.VersionName, bool_2, bool_3)) { flag = false; } else if ( !this.method_8(iversionedWorkspace_0.FindVersion(i.VersionName) as IVersionEdit, string_0, bool_2, bool_3)) { flag = true; } } } catch { flag = false; } return(flag); }
public void GetDifferences1(IWorkspace iworkspace_0, string string_0, string string_1, TreeNodeCollection treeNodeCollection_0, IList ilist_0) { try { this.bool_0 = false; IFeatureWorkspace workspace = iworkspace_0 as IFeatureWorkspace; IVersionedWorkspace workspace2 = iworkspace_0 as IVersionedWorkspace; IFeatureWorkspace workspace3 = workspace2.FindVersion(string_0) as IFeatureWorkspace; IFeatureWorkspace workspace4 = workspace2.FindVersion(string_1) as IFeatureWorkspace; ilist_0.Clear(); ilist_0.Add("Version Difference Report - " + DateTime.Now.ToLongDateString()); ilist_0.Add("Parent/Grandparent/.. Version: " + string_0); ilist_0.Add("Child Version: " + string_1); ilist_0.Add("________________________________________________________"); this.CheckDatasetForDifferences(treeNodeCollection_0, workspace, workspace3, workspace4, string_0, string_1, ilist_0); if (!this.bool_0) { ilist_0.Add("No differences found."); } } catch { } }
public void ChangeVersionByName(IGraphicsContainer igraphicsContainer_0, IFeatureWorkspace ifeatureWorkspace_0, string string_0) { try { if ((((igraphicsContainer_0 != null) && (ifeatureWorkspace_0 != null)) && (string_0.Length != 0)) && (ifeatureWorkspace_0 is IVersionedWorkspace)) { IVersionedWorkspace workspace = ifeatureWorkspace_0 as IVersionedWorkspace; string versionName = (workspace as IVersion).VersionName; IPropertySet connectionProperties = (ifeatureWorkspace_0 as IWorkspace).ConnectionProperties; try { connectionProperties.GetProperty("Version").ToString(); } catch { } IVersion version = workspace.FindVersion(string_0); if (version == null) { } this.ChangeVersion(igraphicsContainer_0, ifeatureWorkspace_0, version as IFeatureWorkspace); } } catch (Exception exception) { MessageBox.Show(exception.Message); } }
/// <summary> /// 切换到任务 /// </summary> /// <param name="versionName"></param> public void ChangeToCheckInVersion(string versionName) { IVersionedWorkspace vws = Util.ServerWorkspace as IVersionedWorkspace; IVersion ver = vws.FindVersion(versionName); IMapAdmin3 ma = this.axMapControl1.Map as IMapAdmin3; IBasicMap bmap = this.axMapControl1.Map as IBasicMap; AppManager am = AppManager.GetInstance(); IChangeDatabaseVersion cdv = new ChangeDatabaseVersionClass(); if (am.CurrentVersion == null) { ma.FireChangeVersion(vws.DefaultVersion, ver); cdv.Execute(vws.DefaultVersion, ver, bmap); } else { ma.FireChangeVersion(am.CurrentVersion, ver); cdv.Execute(am.CurrentVersion, ver, bmap); } am.CurrentVersion = ver; am.TaskName = versionName; m_EditWorkspace = ver as IWorkspaceEdit2; FilterLayers(); SetUpdateGridList(versionName); SetStatusLabel(versionName); }
/// <summary> /// 结束任务流程 /// </summary> /// <param name="taskName"></param> public void FinishTask(string taskName) { IFeatureWorkspace ws = Util.ServerWorkspace as IFeatureWorkspace; IVersionedWorkspace vw = ws as IVersionedWorkspace; if (taskName.ToLower() == vw.DefaultVersion.VersionName.ToLower()) { return; } IVersion ver = vw.FindVersion(taskName); IVersionEdit4 ve = ver as IVersionEdit4; IWorkspaceEdit wse = ver as IWorkspaceEdit; wse.StartEditing(true); ve.Reconcile4(vw.DefaultVersion.VersionName, true, true, true, true); if (ve.CanPost()) { ve.Post(vw.DefaultVersion.VersionName); } ITable task_tbl = ws.OpenTable("TaskLog"); IQueryFilter filter = new QueryFilterClass(); filter.WhereClause = "TaskName = '" + taskName + "'"; ICursor cur = task_tbl.Search(filter, false); IRow rw = cur.NextRow(); if (rw != null) { rw.set_Value(task_tbl.FindField("Status"), TaskManager.FINISH_STATUS); rw.set_Value(task_tbl.FindField("FinishDate"), DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); rw.Store(); } wse.StopEditing(true); ver.Delete(); }
public IVersion CreateNewVersion(IVersionedWorkspace versionedWorkspace, string versionName, string parentVersionName) { IVersion newVersion = null; IVersion parentVersion = null; try { if (parentVersionName == "") { parentVersion = versionedWorkspace.DefaultVersion; } else { parentVersion = versionedWorkspace.FindVersion(parentVersionName); } } catch { MessageBox.Show("không tìm thấy version :" + parentVersionName); } try { /* * Delete the version if it exists. */ newVersion = versionedWorkspace.FindVersion(versionName); newVersion.Delete(); newVersion = parentVersion.CreateVersion(versionName); //newVersion = new SeVersion(conn); } catch (Exception e) { //if( e.get.getSdeError() == IError.SE_VERSION_NOEXIST ) try { newVersion = parentVersion.CreateVersion(versionName); } catch (Exception se) { MessageBox.Show(se.ToString()); } } newVersion.Access = esriVersionAccess.esriVersionAccessPublic; return newVersion; }
/// <summary> /// 删除当前版本 /// </summary> /// <param name="pWorkspace">工作区</param> /// <param name="VersionName">版本名称</param> /// <returns></returns> public static bool DeleteVersion(IWorkspace pWorkspace, string VersionName) { IVersionedWorkspace pVerWorkspace = (IVersionedWorkspace)pWorkspace; IVersion pVersion = pVerWorkspace.FindVersion(VersionName); pVersion.Delete(); return(true); }
private bool method_3(IVersionedWorkspace iversionedWorkspace_1, IEnumVersionInfo ienumVersionInfo_0, string string_0, bool bool_0, bool bool_1) { bool flag = true; try { for (IVersionInfo info = ienumVersionInfo_0.Next(); info != null; info = ienumVersionInfo_0.Next()) { IVersionEdit edit; if (bool_0) { if (!this.method_3(iversionedWorkspace_1, info.Children, info.VersionName, bool_0, bool_1)) { flag = false; this.txtMessage.Text = "无法合并 " + info.VersionName + "的所有子版"; } else { this.txtMessage.Text = "正在合并 " + info.VersionName; edit = iversionedWorkspace_1.FindVersion(info.VersionName) as IVersionEdit; if (!this.method_4(edit, string_0, bool_0, bool_1)) { flag = true; } } } else { this.txtMessage.Text = "正在合并 " + info.VersionName; edit = iversionedWorkspace_1.FindVersion(info.VersionName) as IVersionEdit; if (this.method_4(edit, string_0, bool_0, bool_1)) { this.method_3(iversionedWorkspace_1, info.Children, info.VersionName, bool_0, bool_1); } } } } catch { flag = false; } return(flag); }
public void DeleteVersion(IWorkspace workspace, string versionName) { IVersionedWorkspace vw = workspace as IVersionedWorkspace; IVersion ver = vw.FindVersion(versionName); AppManager am = AppManager.GetInstance(); if (am.CurrentVersion.VersionName == versionName) { MainForm mf = am.AppForm; mf.ChangeToDefaultVersion(); } ver.Delete(); }
public static IFIDSet FindVersionDifferences(IWorkspace workspace, String sourceVersionName, String targetVersionName, String tableName, esriDifferenceType differenceType) { // Get references to the child and parent versions. IVersionedWorkspace versionedWorkspace = (IVersionedWorkspace)workspace; IVersion sourceVersion = versionedWorkspace.FindVersion(sourceVersionName); IVersion targetVersion = versionedWorkspace.FindVersion(targetVersionName); // Cast to the IVersion2 interface to find the common ancestor. IVersion2 sourceVersion2 = (IVersion2)sourceVersion; IVersion commonAncestorVersion = sourceVersion2.GetCommonAncestor(targetVersion); // Cast the child version to IFeatureWorkspace and open the table. IFeatureWorkspace targetFWS = (IFeatureWorkspace)sourceVersion; ITable targetTable = targetFWS.OpenTable(tableName); // Cast the common ancestor version to IFeatureWorkspace and open the table. IFeatureWorkspace commonAncestorFWS = (IFeatureWorkspace)commonAncestorVersion; ITable commonAncestorTable = commonAncestorFWS.OpenTable(tableName); // Cast to the IVersionedTable interface to create a difference cursor. IVersionedTable versionedTable = (IVersionedTable)targetTable; IDifferenceCursor differenceCursor = versionedTable.Differences(commonAncestorTable, differenceType, null); // Create output variables for the IDifferenceCursor.Next method and a FID set. IFIDSet fidSet = new FIDSetClass(); IRow differenceRow = null; int objectID = -1; // Step through the cursor, showing the ID of each modified row. differenceCursor.Next(out objectID, out differenceRow); while (objectID != -1) { fidSet.Add(objectID); differenceCursor.Next(out objectID, out differenceRow); } fidSet.Reset(); return(fidSet); }
public void DeleteTask(string taskName) { IFeatureWorkspace ws = Util.ServerWorkspace as IFeatureWorkspace; ITable task_tbl = ws.OpenTable("TaskLog"); IQueryFilter filter = new QueryFilterClass(); filter.WhereClause = "TaskName = '" + taskName + "'"; ICursor cur = task_tbl.Search(filter, false); IRow rw = cur.NextRow(); IWorkspaceEdit wse = ws as IWorkspaceEdit; if (rw != null) { string status = rw.get_Value(task_tbl.FindField("Status")) as string; if (status == TaskManager.CHECKOUT_STATUS) { wse.StartEditing(true); rw.Delete(); wse.StopEditing(true); } else if (status == TaskManager.CHECKIN_STATUS) { IVersionedWorkspace vw = ws as IVersionedWorkspace; IVersion ver = vw.FindVersion(taskName); ver.Delete(); wse.StartEditing(true); rw.Delete(); wse.StopEditing(true); } wse.StartEditing(false); ITable tgl_tbl = ws.OpenTable("TaskGridLog"); IQueryFilter tgl_filter = new QueryFilterClass(); tgl_filter.WhereClause = "TaskName = '" + taskName + "'"; tgl_tbl.DeleteSearchedRows(tgl_filter); wse.StopEditing(true); IQueryFilter checkItem_filter = new QueryFilterClass(); checkItem_filter.WhereClause = "VersionName = '" + taskName + "'"; wse.StartEditing(false); ITable checkItemPtn_fc = ws.OpenTable("CheckItemPtn"); checkItemPtn_fc.DeleteSearchedRows(checkItem_filter); ITable checkItemLn_fc = ws.OpenTable("CheckItemLn"); checkItemLn_fc.DeleteSearchedRows(checkItem_filter); ITable checkItemPoly_fc = ws.OpenTable("CheckItemPoly"); checkItemPoly_fc.DeleteSearchedRows(checkItem_filter); wse.StopEditing(true); } }
public static IFIDSet FindVersionDifferences(IWorkspace workspace, string childVersionName, string parentVersionName, string tableName, esriDifferenceType differenceType) { IVersionedWorkspace versionedWorkspace = (IVersionedWorkspace)workspace; IVersion version = versionedWorkspace.FindVersion(childVersionName); IVersion version1 = versionedWorkspace.FindVersion(parentVersionName); IVersion commonAncestor = ((IVersion2)version).GetCommonAncestor(version1); ITable table = ((IFeatureWorkspace)version).OpenTable(tableName); ITable table1 = ((IFeatureWorkspace)commonAncestor).OpenTable(tableName); IDifferenceCursor differenceCursor = ((IVersionedTable)table).Differences(table1, differenceType, null); IFIDSet fIDSetClass = new FIDSet(); IRow row = null; int num = -1; differenceCursor.Next(out num, out row); while (num != -1) { fIDSetClass.Add(num); differenceCursor.Next(out num, out row); } fIDSetClass.Reset(); return(fIDSetClass); }
public bool ExistVersion(IWorkspace workspace, string versionName) { IVersionedWorkspace vw = workspace as IVersionedWorkspace; try { IVersion ver = vw.FindVersion(versionName); } catch (Exception ex) { return(false); } return(true); }
public static List <IVersion> GetParentVersionList(IVersion pVersion) { List <IVersion> versions = new List <IVersion>(); if (pVersion.HasParent()) { IVersionedWorkspace versionedWorkspace = pVersion as IVersionedWorkspace; IEnumVersionInfo ancestors = pVersion.VersionInfo.Ancestors; IVersionInfo versionInfo = ancestors.Next(); while (versionInfo != null) { versions.Add(versionedWorkspace.FindVersion(versionInfo.VersionName)); versionInfo = ancestors.Next(); } } return(versions); }
private string method_0(string string_0) { if (this.iworkspace_0 is IVersionedWorkspace) { IVersionedWorkspace workspace = this.iworkspace_0 as IVersionedWorkspace; try { IVersion version = workspace.FindVersion(string_0); if (version.HasParent()) { return(version.VersionInfo.Parent.VersionName); } } catch { } } return(""); }
/// <summary> /// Gets the version. /// </summary> /// <param name="source">The source.</param> /// <param name="name">The name.</param> /// <returns>Returns a <see cref="IVersion" /> representing the version.</returns> public static IVersion GetVersion(this IVersionedWorkspace source, string name) { try { var version = source.FindVersion(name); version.RefreshVersion(); return(version); } catch (COMException e) { if (e.ErrorCode == (int)fdoError.FDO_E_VERSION_NOT_FOUND || e.ErrorCode == (int)fdoError.FDO_E_SE_VERSION_NOEXIST) { return(null); } throw; } }
public void ChangeToCheckInVersion(string versionName) { this.superTabControl1.SelectedTabIndex = 1; IVersionedWorkspace vws = Util.ServerWorkspace as IVersionedWorkspace; IVersion ver = vws.FindVersion(versionName); IMapAdmin3 ma = this.axMapControl2.Map as IMapAdmin3; IBasicMap bmap = this.axMapControl2.Map as IBasicMap; AppManager am = AppManager.GetInstance(); IChangeDatabaseVersion cdv = new ChangeDatabaseVersionClass(); //ma.FireChangeVersion(am.CurrentVersion, ver); //ILayer lyr = this.axMapControl2.get_Layer(2); cdv.Execute(am.CurrentVersion, ver, bmap); am.CurrentVersion = ver; am.TaskName = versionName; LocateTask(versionName); SetUpdateGridList(versionName); }
public void ShowDifferenceGeometry(IVersionedWorkspace iversionedWorkspace_0, int int_0, IMap imap_0, string string_0, string string_1) { try { IQueryFilter filter = new QueryFilterClass(); IDataset featureClass = null; IFeatureWorkspace workspace = iversionedWorkspace_0.FindVersion(string_1) as IFeatureWorkspace; for (int i = 0; i < imap_0.LayerCount; i++) { IFeatureLayer layer = imap_0.get_Layer(i) as IFeatureLayer; if (layer != null) { featureClass = layer.FeatureClass as IDataset; if (featureClass.Name.ToUpper() == string_0.ToUpper()) { break; } } } if (featureClass != null) { IFeatureClass class3 = workspace.OpenFeatureClass(featureClass.Name); filter.WhereClause = "OBJECTID = " + int_0; IFeatureCursor o = class3.Search(filter, false); IFeature feature = o.NextFeature(); if (feature != null) { this.DrawDifferenceGeometry(feature.Shape, (imap_0 as IActiveView).ScreenDisplay); } ComReleaser.ReleaseCOMObject(o); } } catch { } }
public void Check(string taskName, bool isPartial) { IVersionedWorkspace vws = Util.ServerWorkspace as IVersionedWorkspace; m_checkingWS = vws.FindVersion(taskName) as IWorkspace; m_errors.Clear(); m_log.Clear(); m_log.Add("Start Check"); IsCheckTaskData = true; LoadCheckItems(taskName, isPartial); foreach (var checker in Checkers) { m_log.Add("---------------------"); m_log.Add("Checker:" + checker.GetType().ToString()); BaseChecker bc = checker as BaseChecker; if (checker.CheckData()) { if (bc.CheckErrorList != null) { foreach (CheckError err in bc.CheckErrorList) { m_log.Add(err.Description); } m_errors.AddRange(bc.CheckErrorList.OfType <CheckError>()); } m_log.Add("Check Successfully"); } else { m_log.Add("Check Failed"); m_log.Add(bc.Message); } m_log.Add("---------------------"); } m_log.Add("End Check"); }
public bool Do() { string str = this.txtCheckOutName.Text.Trim(); if (str.Length == 0) { MessageBox.Show("请输入检出名称!"); return(false); } IVersionedWorkspace workspace = (CheckOutHelper.m_pHelper.MasterWorkspaceName as IName).Open() as IVersionedWorkspace; try { if (workspace.FindVersion(str) != null) { MessageBox.Show("主数据库中已存在版本: " + str); return(false); } } catch { } string path = this.txtOutGDB.Text.Trim(); if (path.Length == 0) { MessageBox.Show("请选择检出位置!"); return(false); } if (!(Path.GetExtension(path).ToLower() == ".mdb")) { MessageBox.Show("请选择正确的检出位置!"); return(false); } if (!File.Exists(path)) { IWorkspaceFactory factory = new AccessWorkspaceFactory(); try { IWorkspaceName name = factory.Create(Path.GetDirectoryName(path), Path.GetFileNameWithoutExtension(path), null, 0); this.txtOutGDB.Tag = name; goto Label_016D; } catch (Exception exception) { MessageBox.Show(exception.ToString()); return(false); } } IWorkspaceName name2 = new WorkspaceNameClass { WorkspaceFactoryProgID = "esriDataSourcesGDB.AccessWorkspaceFactory", PathName = path }; IWorkspace workspace2 = (name2 as IName).Open() as IWorkspace; if (!this.method_2(workspace2, CheckOutHelper.m_pHelper.EnumName)) { return(false); } this.txtOutGDB.Tag = name2; Label_016D: CheckOutHelper.m_pHelper.ReuseSchema = this.chkResueSchema.Checked; CheckOutHelper.m_pHelper.CheckOutName = str; CheckOutHelper.m_pHelper.CheckOnlySchema = this.rdoType.SelectedIndex == 1; CheckOutHelper.m_pHelper.CheckoutWorkspaceName = this.txtOutGDB.Tag as IWorkspaceName; return(true); }
public IVersion CreateNewVersion(IVersionedWorkspace versionedWorkspace, string versionName,esriVersionAccess access) { IVersion newVersion = null; IVersion parentVersion = null; try { /* * Delete the version if it exists. */ parentVersion = versionedWorkspace.DefaultVersion; newVersion = versionedWorkspace.FindVersion(versionName); newVersion.Delete(); newVersion = parentVersion.CreateVersion(versionName); //newVersion = new SeVersion(conn); } catch (Exception e) { //if( e.get.getSdeError() == IError.SE_VERSION_NOEXIST ) try { newVersion = parentVersion.CreateVersion(versionName); } catch (Exception se) { MessageBox.Show(se.ToString()); } } newVersion.Access = access; return newVersion; }
public int UpdateAssets(List <AssetModified> assetModifieds) { int num; this.dtStartTime = DateTime.Now; Assets.logger.Debug(string.Concat("UpdateAssets start at ", this.dtStartTime.ToString())); IPropertySet propertySet = Assets.GetPropertySet(); int counter = 0; try { IWorkspace workspaceName = (new SdeWorkspaceFactoryClass()).Open(propertySet, 0); IVersionedWorkspace versionedWorkspace = (IVersionedWorkspace)workspaceName; IEnumVersionInfo enumVersionInfo = versionedWorkspace.Versions; enumVersionInfo.Reset(); IVersionInfo existversionInfo = enumVersionInfo.Next(); while (existversionInfo != null) { if (!existversionInfo.VersionName.Trim().Equals("MSD.DTS_EDIT")) { existversionInfo = enumVersionInfo.Next(); } else { versionedWorkspace.FindVersion("MSD.DTS_EDIT").Delete(); break; } } enumVersionInfo.Reset(); IVersion version = (IVersion)((IFeatureWorkspace)workspaceName); string name = version.VersionInfo.VersionName; IVersion dtsVersion = version.CreateVersion("DTS_EDIT"); dtsVersion.Access = esriVersionAccess.esriVersionAccessPublic; dtsVersion.Description = "Update DTS to MSD Ownership via DTS app"; if (dtsVersion.VersionName.Contains("DTS_EDIT")) { IMultiuserWorkspaceEdit multiuserWorkspaceEdit = (IMultiuserWorkspaceEdit)dtsVersion; IWorkspaceEdit workspaceEdit = (IWorkspaceEdit)dtsVersion; IVersionEdit4 versionEdit = (IVersionEdit4)workspaceEdit; if (multiuserWorkspaceEdit.SupportsMultiuserEditSessionMode(esriMultiuserEditSessionMode.esriMESMVersioned)) { multiuserWorkspaceEdit.StartMultiuserEditing(esriMultiuserEditSessionMode.esriMESMVersioned); versionEdit.Reconcile4("MSD.QC", true, false, false, false); workspaceEdit.StartEditOperation(); ILog log = Assets.logger; DateTime now = DateTime.Now; log.Debug(string.Concat("GetUpdateAssets start at ", now.ToString())); counter = Assets.GetUpdateAssets(assetModifieds, counter, workspaceEdit); ILog log1 = Assets.logger; now = DateTime.Now; log1.Debug(string.Concat("GetUpdateAssets end at ", now.ToString())); if (versionEdit.CanPost()) { versionEdit.Post("MSD.QC"); } workspaceEdit.StopEditOperation(); workspaceEdit.StopEditing(true); } } this.dtEndTime = DateTime.Now; this.tsDiff = this.dtEndTime.Subtract(this.dtStartTime); this.dlTimeDiff = this.tsDiff.TotalMilliseconds; Assets.logger.Debug(string.Concat("UpdateAssets end at ", this.dtStartTime.ToString(), " Total diff : ", this.dlTimeDiff.ToString())); num = counter; } catch (COMException cOMException) { COMException ex = cOMException; Assets.logger.Debug(string.Concat("Error from UpdateAssets : ", ex.Message, " ", ex.StackTrace)); throw ex; } catch (Exception exception) { Exception ex = exception; Assets.logger.Debug(string.Concat("Error from UpdateAssets : ", ex.Message, " ", ex.StackTrace)); throw ex; } return(num); }
public void UpdateAssetsTest() { RuntimeManager.Bind(ProductCode.Desktop); (new AoInitializeClass()).Initialize(esriLicenseProductCode.esriLicenseProductCodeStandard); IPropertySet propertySet = new PropertySetClass(); propertySet.SetProperty("Server", "RJMSDDBT02"); propertySet.SetProperty("Instance", "sde:oracle11g:gisdevl"); propertySet.SetProperty("Database", "GISDEVL"); propertySet.SetProperty("user", "MSD"); propertySet.SetProperty("password", "jc_tc1954"); propertySet.SetProperty("version", "MSD.QC"); int flag = 0; try { IWorkspace workspaceName = (new SdeWorkspaceFactoryClass()).Open(propertySet, 0); IVersionedWorkspace versionedWorkspace = (IVersionedWorkspace)workspaceName; IEnumVersionInfo enumVersionInfo = versionedWorkspace.Versions; enumVersionInfo.Reset(); IVersionInfo existversionInfo = enumVersionInfo.Next(); while (existversionInfo != null) { if (!existversionInfo.VersionName.Trim().Equals("MSD.DTS_EDIT")) { existversionInfo = enumVersionInfo.Next(); } else { versionedWorkspace.FindVersion("MSD.DTS_EDIT").Delete(); flag = 1; break; } } enumVersionInfo.Reset(); IVersion version = (IVersion)((IFeatureWorkspace)workspaceName); string name = version.VersionInfo.VersionName; IVersion dtsVersion = version.CreateVersion("DTS_EDIT"); dtsVersion.Access = esriVersionAccess.esriVersionAccessPublic; dtsVersion.Description = "Update DTS to MSD Ownership via DTS app"; if (dtsVersion.VersionName.Contains("DTS_EDIT")) { IMultiuserWorkspaceEdit multiuserWorkspaceEdit = (IMultiuserWorkspaceEdit)dtsVersion; IWorkspaceEdit workspaceEdit = (IWorkspaceEdit)dtsVersion; IVersionEdit4 versionEdit = (IVersionEdit4)workspaceEdit; if (multiuserWorkspaceEdit.SupportsMultiuserEditSessionMode(esriMultiuserEditSessionMode.esriMESMVersioned)) { multiuserWorkspaceEdit.StartMultiuserEditing(esriMultiuserEditSessionMode.esriMESMVersioned); versionEdit.Reconcile4("MSD.QC", true, false, false, false); workspaceEdit.StartEditOperation(); IFeature featureEdit = ((IFeatureWorkspace)workspaceEdit).OpenFeatureClass("SWRAINGAUGE").GetFeature(330); // Convert.ToString(featureEdit[6]); Convert.ToString(featureEdit.Value[6]); int Totalfield = featureEdit.Fields.FieldCount; int ownershipindex = featureEdit.Fields.FindField("OWNERSHIP"); int lastmodifieddtindex = featureEdit.Fields.FindField("LAST_MODIFIED_DATE"); DateTime lastmodifieddt = DateTime.Now.Date; //featureEdit[ownershipindex] = "1"; //featureEdit[lastmodifieddtindex] = lastmodifieddt.Date; featureEdit.Value[ownershipindex] = "1"; featureEdit.Value[lastmodifieddtindex] = lastmodifieddt.Date; featureEdit.Store(); if (versionEdit.CanPost()) { versionEdit.Post("MSD.QC"); } workspaceEdit.StopEditOperation(); workspaceEdit.StopEditing(true); } } } catch (COMException cOMException) { if (cOMException.ErrorCode == -2147217147) { } } catch (Exception exception) { } }