在做機房收費系統的時候,沒有想到多使用者操作的問題。在調試的時候,賈琳提出了此問題。由於此系統是在上下機的時候讀取時間,然後做差。那麼在多使用者操作時,如果這些使用者的時間不一致,那麼就會發生錯誤。所以,在使用此系統時,全部都調用伺服器時間,這樣就可以避免此問題了。下面是調用伺服器日期和時間的函數。
Public Function getDate() As String Dim strCn As String, strRs As String Dim objRs As Recordset, objCn As Connection strCn = "Provider=SQLOLEDB;Data Source=192.168.24.61;Initial CataLog=charge_my;UID=sa;PWD=123456" Set objCn = New Connection objCn.Open strCn strRs = "select replace(convert(varchar(10),getdate(),120),N'-0','-')" Set objRs = New Recordset objRs.Open Trim$(strRs), objCn, adOpenKeyset, adLockOptimistic getDate = objRs.Fields(0) End FunctionPublic Function getTime() As String Dim strCn As String, strRs As String Dim objCn As Connection, objRs As Recordset strCn = "Provider=SQLOLEDB;Data Source=192.168.24.61;Initial CataLog=charge_my;UID=sa;PWD=123456" Set objCn = New Connection objCn.Open strCn strRs = "select CONVERT(varchar, getdate(), 108)" Set objRs = New Recordset objRs.Open Trim$(strRs), objCn, adOpenKeyset, adLockOptimistic getTime = objRs.Fields(0)End Function
主要是用了convert這個函數來擷取想要的時間格式。由於我日期和時間都設定的是字元型,所以如果格式不一樣的話,比較會出錯。而convert這個函數幫我解決了時間格式問題。