举个例子 你要分成逻辑层和数据访问层,将数据库表与类进行一一映射 根据情况使用记录集 Public Function Add(ByVal Username As String, ByVal Password As String) On Error GoTo ErrorHandler Dim objCtx As ObjectContext Set objCtx = GetObjectContext() Dim strSql As String strSql = "insert into users(name,password) values('" + Username + "','" + Password + "')" End FunctionPublic Function Login(ByVal Username As String, ByVal Password As String) As ADODB.Recordset Dim strSql As String On Error GoTo err Dim objCtx As ObjectContext Set objCtx = GetObjectContext() strSql = "select * from users where Username='" + Username + "' and password='" + Password + "'" Dim conn As ADODB.Connection Set conn = OpenConnection() Dim rs As ADODB.Recordset 'Set rs = New ADODB.Recordset 'rs.Open strSql, conn Set rs = conn.Execute(strSql)Set Login = rsIf Not conn Is Nothing Then Set conn = Nothing End IfIf Not objCtx Is Nothing Then objCtx.SetComplete End If Exit Functionerr: If Not conn Is Nothing Then Set conn = Nothing End IfIf Not objCtx Is Nothing Then objCtx.SetAbort End If err.Raise err.Number, "UsersDataService.UsersData.Login", err.Description End Functionform中 Private Sub cmdOk_Click() Dim strerr As String
On Error GoTo Errorhandle Dim rsuser As ADODB.Recordset '直接调用数据层 Dim users As UsersDataService.UsersData Set users = New UsersDataService.UsersData Set rsuser = users.Login(Trim(TxtUserName.Text), Trim(TxtPassword.Text)) If rsuser.EOF Then strerr = "无效的用户名或密码" Else strerr = "登陆成功" UserName = Trim(rsuser.Fields("username")) Password = Trim(rsuser.Fields("password")) End If
If Not rsuser Is Nothing Then If rsuser.State = 1 Then rsuser.Close End If Set rsuser = Nothing End If
If strerr = "登陆成功" Then IsSuccess = True Me.Hide Else Ct = Ct + 1 If Ct = 3 Then cmdCancel_Click Exit Sub End If MsgBox strerr, vbOKOnly, "登录" End If MousePointer = 0 Exit SubErrorhandle: If Not rsuser Is Nothing Then If rsuser.State = 1 Then rsuser.Close End If Set rsuser = Nothing End IfMousePointer = 0MsgBox Err.Description, vbInformation, Err.Source End Sub
服务器端 类名svrmgr.BaseCls 方法 function GetData() as adodb.recordset dim rs ...... set GetData=rs end function 客户端 set obj=createobject("svrmgr.BaseCls","servername") set rsList=obj.GetData()
你要分成逻辑层和数据访问层,将数据库表与类进行一一映射
根据情况使用记录集
Public Function Add(ByVal Username As String, ByVal Password As String)
On Error GoTo ErrorHandler
Dim objCtx As ObjectContext
Set objCtx = GetObjectContext()
Dim strSql As String
strSql = "insert into users(name,password) values('" + Username + "','" + Password + "')"
End FunctionPublic Function Login(ByVal Username As String, ByVal Password As String) As ADODB.Recordset
Dim strSql As String
On Error GoTo err
Dim objCtx As ObjectContext
Set objCtx = GetObjectContext()
strSql = "select * from users where Username='" + Username + "' and password='" + Password + "'"
Dim conn As ADODB.Connection
Set conn = OpenConnection()
Dim rs As ADODB.Recordset
'Set rs = New ADODB.Recordset
'rs.Open strSql, conn
Set rs = conn.Execute(strSql)Set Login = rsIf Not conn Is Nothing Then
Set conn = Nothing
End IfIf Not objCtx Is Nothing Then
objCtx.SetComplete
End If
Exit Functionerr:
If Not conn Is Nothing Then
Set conn = Nothing
End IfIf Not objCtx Is Nothing Then
objCtx.SetAbort
End If
err.Raise err.Number, "UsersDataService.UsersData.Login", err.Description
End Functionform中
Private Sub cmdOk_Click()
Dim strerr As String
On Error GoTo Errorhandle
Dim rsuser As ADODB.Recordset
'直接调用数据层
Dim users As UsersDataService.UsersData
Set users = New UsersDataService.UsersData
Set rsuser = users.Login(Trim(TxtUserName.Text), Trim(TxtPassword.Text))
If rsuser.EOF Then
strerr = "无效的用户名或密码"
Else
strerr = "登陆成功"
UserName = Trim(rsuser.Fields("username"))
Password = Trim(rsuser.Fields("password"))
End If
If Not rsuser Is Nothing Then
If rsuser.State = 1 Then
rsuser.Close
End If
Set rsuser = Nothing
End If
If strerr = "登陆成功" Then
IsSuccess = True
Me.Hide
Else
Ct = Ct + 1
If Ct = 3 Then
cmdCancel_Click
Exit Sub
End If
MsgBox strerr, vbOKOnly, "登录"
End If
MousePointer = 0
Exit SubErrorhandle:
If Not rsuser Is Nothing Then
If rsuser.State = 1 Then
rsuser.Close
End If
Set rsuser = Nothing
End IfMousePointer = 0MsgBox Err.Description, vbInformation, Err.Source
End Sub
类名svrmgr.BaseCls
方法
function GetData() as adodb.recordset
dim rs
......
set GetData=rs
end function
客户端
set obj=createobject("svrmgr.BaseCls","servername")
set rsList=obj.GetData()
这个问题困绕我很长时间了
特别是我想用ActiveX EXE 作为服务器端
请指教ActiveX EXE、ActiveX dll服务器与客户端的部署方法
我在www.freewebs.com/xshlm上放了一个代码(dcom),我不知如何部署到局域网上在csdn上问了几个月,看了好多资料就是不知怎么做
我的[email protected]
请不惜赐教