📄 lockmanager.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "LockManager"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
'--------------------------------
'时间:2001.11.12
'版权:北京用友软件股份有限公司
'设计:章景峰
'编码:章景峰
'说明:U8资金管理---数据对象
'--------------------------------
Option Explicit
'加锁
Public Function LockIt(DataSourceName As String, OID As OIDObject, UserName As String, WorkStation As String) As Boolean
Dim rec As New ADODB.Recordset
Dim sql As String
If con.State = adStateClosed Then con.Open DataSourceName
sql = "Select * From FD_Locks Where locks_id = '" & OID.ID & "'"
rec.Open sql, con, adOpenDynamic, adLockOptimistic
If rec.EOF Then
'----锁定当前记录
rec.AddNew
rec!locks_id = OID.ID
rec!user_name = UserName
rec!workstation_name = WorkStation
rec.Update
Else
If rec!user_name = UserName And rec!workstation_name = WorkStation Then
'UnlockIt DataSourceName, OID
Else
'----当前记录已被别人锁定,返回错误信息
Err.Raise ErrRecordHasLocked, , "当前记录已被工作站[" & rec!workstation_name & "]上的用户[" & rec!user_name & "]锁定,请过会儿再试!"
End If
End If
rec.Close
Set rec = Nothing
'----
LockIt = True
End Function
'解锁
Public Function UnlockIt(DataSourceName As String, OID As OIDObject, Optional UserName As String) As Boolean
Dim sql As String
Dim iRecordsAffected As Long
If con.State = adStateClosed Then con.Open DataSourceName
sql = "Delete From FD_Locks Where locks_id = '" & OID.ID & "'"
con.Execute sql, iRecordsAffected
If iRecordsAffected = 0 Then
Err.Raise ErrRecordCannotBeUnlocked, , "当前记录不能被解锁!"
End If
UnlockIt = True
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -