工作中有一个应用系统,其所有数据都存放于数据库中,并使用一工具进行维护。实际使用过程中非常希望对一些数据进行版本控制,这样的需求相信大家也有碰到。
最简单易行的办法是,先将数据导成文件再手工加入SourceSafe中,反之亦然。这样做确实能达到目的,但是中间需要显式地“中转”一下,这显然有点别扭,为什么不能VS那样把SourceSafe集成在我们的工具中呢?于是便有了本文......
一阵搜索下来,发现了 Microsoft SourceSafe 6.0 Type Library 这个东东,如下图:
接下来没什么好说的,写段代码试验一下吧!试验代码实现了VSS的一些基本功能,代码本身实在没什么好多说的,无非就是先Open一个VSSDatabase,然后操作VSSItem,自己看看代码就知道了,唯一需要说明的是VSSFlags各个枚举值,下面是我自己整理的结果,不保证正确,谁有官方的麻烦通知我一声!
下载:VssDemo.zip
附VSSFlags各个枚举值说明:
最简单易行的办法是,先将数据导成文件再手工加入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;
}
浙公网安备 33010602011771号