VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - 多用户应用程序中应注意的其它问题(3)--多客户环境下VB数据库编程之(10)
发表评论(0)作者:不详, 平台:VB6.0+Win98, 阅读:9945, 日期:2001-02-16
多用户应用程序中应注意的其它问题(3)--多客户环境下VB数据库编程之(10)
问题三 用户标识
    
     在多用户应用程序中,可以以编程方式标识当前登录到系统上的用户,这对于管理功能是有用的。比如用编辑好的记录来存储用户名字,从而建立一个核查线索。实现一个安全的数据库,可以迫使用户必须用预先定义的用户名和密码来登录应用程序,这样,应用程序就可以通过Workspace对象的UserNane属性来使用用户名。下面这个过程,把用户名、当前日期和时间写到指定的记录集中。
    
     过程如下:
    
     Function WriteAuditTrail(rst As Recordset) As Integer
     On Error GoTo ErrorHandler
     注释:编辑记录集中的当前记录
     注释:假定Recordset(rst)包括a
     注释:和b两个字段
     rst.Edit
     rst!a=Workspaces(0).UserName
     rst!b=Now
     rst.Update
     ErrorHandler:
     SelectCaseErr
     Case 0
     WriteAuditTrail=O
     EXit Function
     Case Else
     MsgBox "Error" & Err & ":" & Error,vbOKOnlv
     WriteAuditTrail=Err
     EXit Function
     End Select
     End Function
    
     上述过程把用户、系统当前日期和时间写入一个记录集中。如果写入成功,则过程返回0,否则返回相应的错误代码。为了调用上述过程,首先建立一个包含两个字段(a和b)的表,然后在窗体上画一个命令按钮,并编写下面的事件过程:
    
     Private Sub Command1_Click()
     Dim Mvdbs As Database
     Dim MvTab As Recordset
     Set Mydbs=OpenDatabase("c:\dbdir\db1.mdb")
     Set MyTab=Mydbs.OpenRecordset("Tabel4",dbOpenTable)
     a=WriteAuditTrail(MyTab)
     If a=0 then
     MsgBox "用户名、日期和时间已写入"
     ElSe
     MsgBox "写入失败"
     End lf
     End Sub
    
     新建立的表放在数据库dbl.mdb中,名为Tabel4。程序运行后,单击命令按钮,将调用上面的过程,把用户名、日期和时间写入表Tabel4中。可以通过“可视化数据管理器”来查看表Tabel4的内容,如图所示。
    
     a b
     admin 98-3-20 20:13:23
    
     如果不想实现安全性,只需要用户名功能,则可以在运行应用程序时提示用户输入名字和密码,并把输入的值存储到代码变量或临时表中。使用这种方法,可以访问用户名,但不能实现安全的数据库。