RDS可以使用HTTP、HTTPS、DCOM协议,通过HTTP协议的服务器应该有IIS,通过DCOM的我记得98使用时客户端必须是用户级的才能调用,默认98是共享级的。Internet 服务器错误:拒绝访问” 如果发生该错误,通常意味着 Microsoft® Internet Information Server (IIS) 返回以下状态:HTTP_STATUS_DENIED 401请确保 IIS 访问的目录有正确的权限。RDS 1.5 可以与在三种密码验证模式(匿名、基本或 NT 请求/响应)中任何一种模式下运行的 IIS Web 服务器通讯。与以前版本不同的是不再需要“允许匿名”设置。同时,如果 Web 服务器是 Windows NT® 计算机,则必须对数据源计算机有访问权限。
如果重新安装 IIS,则必须随后重新安装远程数据服务。 如果使用 Microsoft SQL Server 作为后端数据源,请使用 Microsoft SQL Server 6.5、Service Pack 2 或更高版本。 请确保 ODBC DSN 是“系统 DSN”而不是“用户 DSN”。通过 IIS 登录的匿名用户只能查看“系统 DSN”。 请检查 WWW 服务使用的匿名帐号是否是来自对所有相关服务器和目录拥有 NTFS 权限的域中的用户。最后,请确认该匿名帐号的密码没有过期。 由于远程数据服务安装在 C:\Program Files\Common Files\System\MSADC 目录中,请检查 IIS Service Manager 的用户是否可以访问该目录。它应该可以进行 Read 和 Execute 访问。
另外,我调用RDS的方式如下,是不是复杂了点Set ADS1 = CreateObject("RDS.DataSpace") Set ADC1 = CreateObject("RDS.DataControl") Set ADF1 = ADS1.CreateObject("RDSServer.DataFactory", _ m_ASPServer) Set rstLoad = New Recordset strSql = "select * from " & mvarTableName & " where loadID=" & mvarLoadID Set myRS = ADF1.query(m_ASPConnect, strSql) Set rstLoad = myRS Set myRS = Nothing strSql = "select well_info.wellNO as wellNo,dyna_rec.recdate as recDate from well_info,dyna_rec,load_posi where load_posi.loadID=dyna_rec.loadID and dyna_rec.wellID=well_info.wellID and load_posi.loadID=" & mvarLoadID Set myRS = ADF1.query(m_ASPConnect, strSql)
Dim ADS1 as New RDS.DataSpace Dim ADF1 as Object Set ADF1 = ADS1.CreateObject"RDSServer.DataFactory", m_AsPServer) set ADS1=nothing 微软的ADO帮助里有比较详细的RDS教程的,可以看一下
如果发生该错误,通常意味着 Microsoft® Internet Information Server (IIS) 返回以下状态:HTTP_STATUS_DENIED 401请确保 IIS 访问的目录有正确的权限。RDS 1.5 可以与在三种密码验证模式(匿名、基本或 NT 请求/响应)中任何一种模式下运行的 IIS Web 服务器通讯。与以前版本不同的是不再需要“允许匿名”设置。同时,如果 Web 服务器是 Windows NT® 计算机,则必须对数据源计算机有访问权限。
如果使用 Microsoft SQL Server 作为后端数据源,请使用 Microsoft SQL Server 6.5、Service Pack 2 或更高版本。
请确保 ODBC DSN 是“系统 DSN”而不是“用户 DSN”。通过 IIS 登录的匿名用户只能查看“系统 DSN”。
请检查 WWW 服务使用的匿名帐号是否是来自对所有相关服务器和目录拥有 NTFS 权限的域中的用户。最后,请确认该匿名帐号的密码没有过期。
由于远程数据服务安装在 C:\Program Files\Common Files\System\MSADC 目录中,请检查 IIS Service Manager 的用户是否可以访问该目录。它应该可以进行 Read 和 Execute 访问。
先要把system32下的一个动态库删掉(哪一个我也不记得了)
再安装MDAC_TYP.EXE
为什么要删库??
另外,要在 组件管理(即COM+管理)中配置吗?
我以前是在组件管理中加了,在已成功的服务器是不是起作用了就不知道了
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters下就是RDS调用的类了,看是否存在。还有服务器是作为代理服务器吗,在IE里能否直接访问服务器? 如果是通过HTTP协议这是必须的。
1.正确设置IIS/msadc虚拟目录的权限(默认只允许本机器访问)
2.找到系统程序目录(program file)/common file/system/msadc/,执行当前目录下的handunsf.reg注册表文件
它的目的是启用RDS服务
3.配置你的ODBC
4.现在你就可以访问了,我给你一种最简单的访问方式.将adodb.connectionstring对象的连接串设置如下:
dim Conn as new adodb.connection
conn.connectionstring="Provider=ms remote;data source=<你的ODBC名称>;remote server=http://<web站点>/msadc"
conn.open
.....
5.下面你就可以象使用ADO那样使用了(可惜不支持事务).
你删除IIS中的默认网站(同时保证没有建其它的网站了),然后重新建一个。
再注册rds,重起就行了
Set ADC1 = CreateObject("RDS.DataControl")
Set ADF1 = ADS1.CreateObject("RDSServer.DataFactory", _
m_ASPServer)
Set rstLoad = New Recordset
strSql = "select * from " & mvarTableName & " where loadID=" & mvarLoadID
Set myRS = ADF1.query(m_ASPConnect, strSql)
Set rstLoad = myRS
Set myRS = Nothing
strSql = "select well_info.wellNO as wellNo,dyna_rec.recdate as recDate from well_info,dyna_rec,load_posi where load_posi.loadID=dyna_rec.loadID and dyna_rec.wellID=well_info.wellID and load_posi.loadID=" & mvarLoadID
Set myRS = ADF1.query(m_ASPConnect, strSql)
http://www.csdn.net/expert/topic/1030/1030297.xml?temp=.7218134
http://www.csdn.net/expert/topic/1030/1030297.xml?temp=.7218134
Dim ADF1 as Object
Set ADF1 = ADS1.CreateObject"RDSServer.DataFactory", m_AsPServer)
set ADS1=nothing
微软的ADO帮助里有比较详细的RDS教程的,可以看一下