Dim N As Object Set N = CreateObject("DCOM_Server.CDCOM_Server")
执行如下语句: Dim N As Object Set N = CreateObject("DCOM_Server.CDCOM_Server","servername") 当我将servername设成本机名字时,运行正常。 当我将servername设成在局域网中不存在的名称时,会出现“远程服务不存在”的错误,证明可 以通过网络访问。 当我将servername设成组件所在的服务器的名称时,就会立即出现“ACTIVEX部件不能创建对象”的错误。 这是为什么?
DCOM的客户端需要安装,不知你有没有其它已调试通过的DCOM实例,我想确定你的问题是不是出在DCOM的使用上,我有一个学习DCOM的文档和实例,如果需要,请EMail to me ([email protected])
怎样将权限设为最大,服务器管理员的权限应该是最大了吧,我的意思是不想将每一台客户机的用户都设为服务器的管理员,只要客户机的权限能刚好访问ActiveX.exe组件就行了,设这种权限的最低限度是什么? 另外,ActiveX.exe组件其中有一下代码: Dim WithEvents rs As Recordset Dim conn As ADODB.Connection Dim cmd As ADODB.CommandPrivate Sub Class_Initialize() Set conn = New ADODB.Connection conn.ConnectionString = "Provider=Microsoft." & _ "Jet.OLEDB.4.0;Data Source=D:\db1.mdb;" & _ "Persist Security Info=False" conn.CursorLocation = adUseServer conn.Open Set rs = New Recordset rs.CursorLocation = adUseServer rs.ActiveConnection = conn rs.Open "select * from rp_data", , adOpenKeyset, adLockOptimistic End SubPublic Function querymaintenance(sql As String, Optional sqlstr As String) As ADODB.Recordset Set cmd = New ADODB.Command cmd.ActiveConnection = conn cmd.CommandText = "select distinct " & sql & " from rp_data " & sqlstr cmd.CommandType = adCmdText Set querymaintenance = cmd.Execute Set cmd = Nothing End Function当我在客户端执行一下代码: Public WithEvents cust As 组件文件名.类 dim rs as adodb.recordset set rs=cust.querymaintenance(...) 结果rs还是nothing,得不到真正结果。 而当我将ACTIVEX。EXE放在同一客户端上运行时,就没有问题,能得到正确的结果。是不是connection不能用adUseServer啊?
应该是你在使用该ActiveX对象时的方法问题,请参考如下语法:
Dim N As Object Set N = CreateObject("DCOM_Server.CDCOM_Server")
Dim N As Object
Set N = CreateObject("DCOM_Server.CDCOM_Server","servername")
当我将servername设成本机名字时,运行正常。
当我将servername设成在局域网中不存在的名称时,会出现“远程服务不存在”的错误,证明可 以通过网络访问。
当我将servername设成组件所在的服务器的名称时,就会立即出现“ACTIVEX部件不能创建对象”的错误。
这是为什么?
如果有哪认能用ACTIVEX.EXE做出方便发行,并基于Internte的应用程序,请给我一个Mail.
[email protected]
如果不行,请告知我你的详细错误信息。
另外,ActiveX.exe组件其中有一下代码:
Dim WithEvents rs As Recordset
Dim conn As ADODB.Connection
Dim cmd As ADODB.CommandPrivate Sub Class_Initialize()
Set conn = New ADODB.Connection
conn.ConnectionString = "Provider=Microsoft." & _
"Jet.OLEDB.4.0;Data Source=D:\db1.mdb;" & _
"Persist Security Info=False"
conn.CursorLocation = adUseServer
conn.Open
Set rs = New Recordset
rs.CursorLocation = adUseServer
rs.ActiveConnection = conn
rs.Open "select * from rp_data", , adOpenKeyset, adLockOptimistic
End SubPublic Function querymaintenance(sql As String, Optional sqlstr As String) As ADODB.Recordset
Set cmd = New ADODB.Command
cmd.ActiveConnection = conn
cmd.CommandText = "select distinct " & sql & " from rp_data " & sqlstr
cmd.CommandType = adCmdText
Set querymaintenance = cmd.Execute
Set cmd = Nothing
End Function当我在客户端执行一下代码:
Public WithEvents cust As 组件文件名.类
dim rs as adodb.recordset
set rs=cust.querymaintenance(...)
结果rs还是nothing,得不到真正结果。
而当我将ACTIVEX。EXE放在同一客户端上运行时,就没有问题,能得到正确的结果。是不是connection不能用adUseServer啊?
DCOM实验刚通过!
传数据集没问题,
传图象有点问题。