這是VB6.0的代碼:
'判斷系統是否退出
Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Dim strOnWork As String
Dim strMsg As String
Dim rstOnWork As ADODB.Recordset
Dim rstWorkLog As ADODB.Recordset
Static intSerial As Integer
If MsgBox("是否確定退出?", vbOKCancel + vbExclamation, "系統提示") = vbOK Then
'查詢正值班老師信息表
strOnWork = "select * from Onwork_info where UserID='" & g_strUserName & "'"
Set rstOnWork = ExecuteSQL(strOnWork, strMsg)
'查詢教師工作記錄表,獲取記錄數
strOnWork = "select * from worklog_info "
Set rstWorkLog = ExecuteSQL(strOnWork, strMsg)
intSerial = rstWorkLog.RecordCount + 1
'更新教師工作記錄表
strOnWork = "INSERT worklog_info VALUES(" & intSerial & ",'" & Trim(rstOnWork!UserID) & _
"','" & rstOnWork!UserLevel & "','" & rstOnWork!LoginDate & "','" & _
rstOnWork!LoginTime & "','" & Date & "','" & Time & "','" & _
rstOnWork!Computer & "','" & "true" & "')"
Call ExecuteSQL(strOnWork, strMsg)
'更新正值班老師信息表
rstOnWork.Delete
rstOnWork.Close
Cancel = 0
Else
Cancel = 1
End If
End Sub
'***以下系統是三層架構中U層關閉主窗體時,判斷系統是否退出的代碼***
Private Sub frmMain_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
Dim teacherWorkManageBLL As New BLL.TeacherWorkManageBLL
Dim workLogEntity As New Entity.WorkLogEntity
If MsgBox("是否確定退出?", vbOKCancel + vbExclamation, "系統提示") = vbOK Then
'用戶工作記錄實體賦值
workLogEntity.UserId = frmLogin.txtUser.Text.Trim
workLogEntity.LogoutTime = Now
'添加用戶下線時間
teacherWorkManageBLL.ModifyWorkLog(workLogEntity)
'***在這裏可以加入系統退出前的一些列操作***
e.Cancel = False
'關閉此父窗體的所有子窗體
For Each ChildForm As Form In Me.MdiChildren
ChildForm.Close()
Next
Me.Close()
e.Cancel = False
Else
e.Cancel = True
End If
End Sub
通過這兩種語言代碼對同一功能的實現比較,我們會發現,在編程的世界裏,其實語言都是想通的,只是表達方式不同了而已。我們這些程序員其實要學習的更多的並非語言,而是思想邏輯,系統架構。