cl991036
管理员
管理员
  • 注册日期2003-07-25
  • 发帖数5917
  • QQ14265545
  • 铜币29669枚
  • 威望217点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • GIS帝国铁杆
阅读:1412回复:2

ArcEngine中版本的使用

楼主#
更多 发布于:2007-07-08 22:19
<H1><a href="http://www.cnblogs.com/njlhb/archive/2007/06/17/786222.html" target="_blank" >ArcEngine中版本的使用</A></H1>
<DIV class=post>
<DIV class=postcontent>
<P>使用版本的过程分为以下几个步骤<BR>1.将Workspace或者数据集注册为使用版本的Workspace或者数据集<BR>IVersionedObject verObj= ds as IVersionedObject;//假设ds 是一个数据集<BR>if(verObj!=null;;(!verObj.pVerdObj.IsRegisteredAsVersioned))<BR>{<BR> //数据集可以被注册而且还没有被注册为版本数据集<BR> //下面的方法 如果使用参数 false 那么表示注册为没有版本的数据<BR> //也就是反注册<BR> verObj.RegisterAsVersioned(true);<BR>}<BR>2.获取版本数据<BR> 获取版本数据的过程比较简单。在连接数据库的时候 需要提供版本字符串。<BR> 默认是使用sde.Default这个版本。如果使用其他版本字符串就会获得其他版本的数据。<BR>3.建立新版本<BR> //假设space 是一个Workspace 而且是一个企业数据库的Workspace。个人数据库和文件工作空间是<BR> //没有版本功能的。<BR> IVersionedWorkspace pVerWS=(IVersionedWorkspace)space;<BR> IVersion pV=pVerWS.DefaultVersion;//上一级版本 这里使用默认版本作为上一级版本   <BR> IVersion pVC=pV.CreateVersion(verName); //建立版本   <BR> pVC.Description=verDesc;//版本的描述<BR> pVC.Access=esriVersionAccess.esriVersionAccessPrivate;//版本的存取策略为私有<BR> pNewVerWS=(IVersionedWorkspace)pVC;//获取使用新版本的Workspace的一种快捷方式<BR>4.合并版本数据<BR> 合并数据使用IVersionEdit接口<BR> 这个接口有VersionedWorkspace 实现。<BR> 下面介绍这个接口 <BR> CanPost 当前正在编辑的版本是否可以提交到目标版本中去 。<BR>  CommonAncestorVersion 当前版本和目标版本的共同祖先 。 <BR>  ConflictClasses 有冲突的Class。<BR>  ModifiedClasses 在两个版本中发生变化的Class 。<BR>  Post 提交版本数据<BR>  PreReconcileVersion  目标版本在检测冲突之前的状态(?)。<BR>  Reconcile 测试数据是否冲突 如果返回true表示有冲突<BR>  ReconcileVersion  目标版本在冲突检测开始的时候的状态(?)<BR>  StartEditingVersion 目标版本开始编辑的时候的状态 (?)<BR>  在提交数据之前 一定要调用Reconcile 否则很有可能会返回错误。</P>
<P>5.浏览工作版本元数据<BR> 浏览版本元数据是指统计工作空间中一共有哪些版本。某个指定的版本的父亲或祖先是谁?<BR> 他又有哪些派生的版本?<BR> IVersionInfo 接口提供了这些信息<BR> 下面是IVersionInfo接口的详细信息:<BR> Access 接口的访问策略<BR> Ancestors 版本的所有祖先,按照由近到远的次序排列<BR> Children 该版本的直接派生版本。<BR> Created 创建的时间<BR> Description 版本的描述<BR> IsOwner 当前用户是不是拥有该版本<BR> Modified 最后修改时间<BR> Parent 版本的直接父亲接电<BR> VersionName 版本的名称<BR> <BR> 注意VersionInfo 实现了上述接口 但是VersionInfo 不是一个可以用来创建对象的类。我们只能通过<BR> 别的方式获取他<BR> IVersionedWorkspace.FindVersion("目标版本名称");<BR> 或者<BR> IVersionedWorkapce.Versions 获取所有当前用户可以获得的版本。包括自己建立 别人建立的public 和protected的版本<BR> 但是如果别人建立的版本是protected 的那么 你就只能看到数据。不能编辑。</P></DIV></DIV>
喜欢0 评分0
没钱又丑,农村户口。头可断,发型一定不能乱。 邮箱:gisempire@qq.com
hsghxm
路人甲
路人甲
  • 注册日期2004-10-27
  • 发帖数517
  • QQ4604052
  • 铜币1枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2007-07-09 09:48
<P>好文章!</P><img src="images/post/smile/dvbbs/em02.gif" />
MSN:hsghxm@163.com QQ:4604052 (很少用,最好别加) Email:hsghxm@163.com 我的BOLG:http://www.gisempire.com/blog/user1/864/index.htm
举报 回复(0) 喜欢(0)     评分
wxyhibernate
路人甲
路人甲
  • 注册日期2006-08-26
  • 发帖数44
  • QQ
  • 铜币225枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2007-07-13 10:39
<P>不错~~~</P>
MSN: at9933@163.com e-mail: at9933@163.com QQ: 279644822 笑笑,于事有点补。
举报 回复(0) 喜欢(0)     评分
游客

返回顶部