shensr

软件推动科技,科技改变世界!

博客园 首页 新随笔 联系 订阅 管理
工作中有一个应用系统,其所有数据都存放于数据库中,并使用一工具进行维护。实际使用过程中非常希望对一些数据进行版本控制,这样的需求相信大家也有碰到。

最简单易行的办法是,先将数据导成文件再手工加入SourceSafe中,反之亦然。这样做确实能达到目的,但是中间需要显式地“中转”一下,这显然有点别扭,为什么不能VS那样把SourceSafe集成在我们的工具中呢?于是便有了本文......

一阵搜索下来,发现了 Microsoft SourceSafe 6.0 Type Library 这个东东,如下图:

 

接下来没什么好说的,写段代码试验一下吧!试验代码实现了VSS的一些基本功能,代码本身实在没什么好多说的,无非就是先Open一个VSSDatabase,然后操作VSSItem,自己看看代码就知道了,唯一需要说明的是VSSFlags各个枚举值,下面是我自己整理的结果,不保证正确,谁有官方的麻烦通知我一声!

下载:VssDemo.zip


附VSSFlags各个枚举值说明:
public enum VSSFlags
{
	VSSFLAG_BINBINARY = 2097152;	// File-type: Binary
	VSSFLAG_BINTEST = 1048576;	// File-type: Auto-detect
	VSSFLAG_BINTEXT = 3145728;	// File-type: Text
	VSSFLAG_CHKEXCLUSIVENO = 536870912;	// Multiple-checkouts: Not allow
	VSSFLAG_CHKEXCLUSIVEYES = 268435456;	// Multiple-checkouts: Allow
	VSSFLAG_CMPCHKSUM = 1536;	// Difference: 
	VSSFLAG_CMPFAIL = 2048;
	VSSFLAG_CMPFULL = 512;
	VSSFLAG_CMPTIME = 1024;
	VSSFLAG_DELNO = 262144;		// Remove-local: No
	VSSFLAG_DELYES = 524288;	// Remove-local: Yes
	VSSFLAG_DELTANO = 8388608;	// Store-latest: Yes
	VSSFLAG_DELTAYES = 4194304;	// Store-latest: No
	VSSFLAG_EOLCR = 16;		// New-line: CR
	VSSFLAG_EOLCRLF = 48;	// New-line: CRLF
	VSSFLAG_EOLLF = 32;	// New-line: LF
	VSSFLAG_FORCEDIRNO = 16384;	// Build-tree: No
	VSSFLAG_FORCEDIRYES = 32768;	// Build-tree: Yes
	VSSFLAG_GETNO = 134217728;	// Get-local-copy: No
	VSSFLAG_GETYES = 67108864;	// Get-local-copy: Yes
	VSSFLAG_HISTIGNOREFILES = 1073741824;	// History Include-file: Yes
	VSSFLAG_KEEPNO = 65536;		// Keep-checkout: No
	VSSFLAG_KEEPYES = 131072;	// Keep-checkout: Yes
	VSSFLAG_RECURSNO = 4096;	// Recursive: No
	VSSFLAG_RECURSYES = 8192;	// Recursive: Yes
	VSSFLAG_DELNOREPLACE = 786432;	// Local-copy: Leave
	VSSFLAG_REPASK = 64;		// Local-copy(writable): Ask
	VSSFLAG_REPMERGE = 256;		// Local-copy(writable): Merge
	VSSFLAG_REPREPLACE = 128;	// Local-copy: Replace
	VSSFLAG_REPSKIP = 192;		// Local-copy(writable): Skip
	VSSFLAG_TIMEMOD = 8;	// Set-file-time: Modification
	VSSFLAG_TIMENOW = 4;	// Set-file-time: Current
	VSSFLAG_TIMEUPD = 12;	// Set-file-time: Check In
	VSSFLAG_UPDASK = 16777216;	//Checkin-unchanged-files: Ask
	VSSFLAG_UPDUNCH = 50331648;	//Checkin-unchanged-files: Undo Check Out
	VSSFLAG_UPDUPDATE = 33554432;	//Checkin-unchanged-files: Check In
	VSSFLAG_USERRONO = 1;
	VSSFLAG_USERROYES = 2;
}
posted on 2004-11-04 17:08  shensr  阅读(1688)  评论(1编辑  收藏  举报