- Public Function GetGUIDString() As String
- ' 通过 GUID 表自动产生 GUID 字符串,并借助事务消除对数据库的操作
- ' GUID 表:GUID 字段为:uniqueidentifier newid() RowGuid 主键
- ' GuidStr字段为:char(20)
- ' 作者:朱亦文
- Dim rst As ADODB.Recordset
- Dim cn As ADODB.Connection
-
- Set cn = CurrentProject.Connection
-
- ' 开始数据库的事务
- cn.BeginTrans
-
- ' 打开一个新的记录集
- Set rst = New ADODB.Recordset
- With rst
- Set .ActiveConnection = cn
-
- ' 以键集开放锁打表 GUID 表
- .Open "GUID", , adOpenKeyset, adLockOptimistic
- ' 新增记录
- .AddNew
- ' 向表中的 GuidStr 字段写入数据
- .Fields("GuidStr") = "s"
- ' 更新,此时在表中产生了一新的唯一的 GUID 值
- .Update
- ' 重新获取数据
- .Requery
- ' 返回记录中的 GUID 值并转换成字符
- GetGUIDString = StringFromGUID(.Fields("GUID"))
- End With
-
- ' 关闭记录集,释放 rst 对象
- Set rst = Nothing
- ' 结束事务并取消上述对数据库的操作
- cn.RollbackTrans
- ' 释放连接对象 cn
- Set cn = Nothing
- GetGUIDString = Mid(GetGUIDString, 2, Len(GetGUIDString) - 2)
- End Function
复制代码
未经许可,请勿转载!
[em26]
至于 GUID 有什么用,请各自发挥!
[此贴子已经被zhuyiwen于2002-6-24 18:58:14编辑过]
|