viking(海盗) :rds 是设计时空件recordset吗?能否给一个例子

cccmx 2001-09-15 03:20:11
...全文
116 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cccmx 2001-09-17
  • 打赏
  • 举报
回复
谢谢,我先试一下。
viking 2001-09-16
  • 打赏
  • 举报
回复

我又找了一点 RDS 教程 (VBScript),希望对你有进一步帮助!
***************************************************

该部分是使用 Microsoft Visual Basic,Scripting Edition 编写对“RDS 教程”的重新说明。

本教程中,RDS.DataControl 和 RDS.DataSpace 是在设计时创建的,就是说它们通过对象标记进行定义,如 <OBJECT>...</OBJECT>。此外,它们也可在运行时通过 Server.CreateObject 方法创建。例如,RDS.DataControl 对象的创建可以是:

Set DC = Server.CreateObject("RDS.DataControl")

<!-- RDS.DataControl -->
<OBJECT
ID="DC1" CLASSID="CLSID:BD96C556-65A3-11D0-983A-00C04FC29E33">
</OBJECT>

<!-- RDS.DataSpace -->
<OBJECT
ID="DS1" WIDTH=1 HEIGHT=1
CLASSID="CLSID:BD96C556-65A3-11D0-983A-00C04FC29E36">
</OBJECT>

<SCRIPT LANGUAGE="VBScript">

Sub RDSTutorial()
Dim DF1 as Object

步骤 1 — 指定服务器程序

VBScript 可以发现它运行其上的 IIS Web 服务器的名称,方法是访问可用于 Active Server Pages 的 VBScript Request.ServerVariables 方法:

"http://<%=Request.ServerVariables("SERVER_NAME")%>"

不过对于本教程,将使用假设的服务器“yourServer”。

注意 请留意 ByRef 参数的数据类型。VBScript 不允许指定变量类型,因此必须始终传递变体型。使用 HTTP 时,RDS 允许将变体型传递给希望使用非变体型的方法,以便使用 RDS.DataSpace 对象的 CreateObject 方法进行调用。当使用 DCOM 或过程中服务器时,必须使客户端与服务器端的数据类型相匹配,否则将会产生“类型不匹配”错误。

Set DF1 = DS1.CreateObject("RDSServer.DataFactory", "http://yourServer")

步骤 2a — 通过 RDS.DataControl 调用服务器程序

该范例只是注释,说明 RDS.DataControl 的默认行为是执行指定的查询。

<OBJECT CLASSID="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33" ID="DC1">
<PARAM NAME="SQL" VALUE="SELECT * FROM authors">
<PARAM NAME="Connect" VALUE="DSN=Pubs;">
<PARAM NAME="Server" VALUE="http://YourServer/">
</OBJECT>
...
<SCRIPT LANGUAGE="VBScript">

Sub RDSTutorial2A()
Dim RS as New ADODB.Recordset
DC1.Refresh
Set RS = DC1.Recordset
...

步骤 2b — 通过 RDSServer.DataFactory 调用服务器程序

步骤 3 — 服务器获得 Recordset

步骤 4 — 服务器返回 Recordset

Set RS = DF1.Query("DSN=pubs", "SELECT * FROM authors")

步骤 5 — 使 DataControl 能被可视控件使用

' 将返回的记录集指定到 DataControl。

DC1.SourceRecordset = RS

步骤 6a — 使用 RDS.DataControl 将更改返回服务器

该范例只是注释,说明 RDS.DataControl 是如何执行更新的。

<OBJECT CLASSID="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33" ID="DC1">
<PARAM NAME="SQL" VALUE="SELECT * FROM authors">
<PARAM NAME="Connect" VALUE="DSN=Pubs;">
<PARAM NAME="Server" VALUE="http://YourServer/">
</OBJECT>
...
<SCRIPT LANGUAGE="VBScript">

Sub RDSTutorial6A()
Dim RS as New ADODB.Recordset
DC1.Refresh
...
Set RS = DC1.Recordset
' 编辑记录集对象...
' SERVER 和 CONNECT 属性已经在步骤 2A 中设置。
Set DC1.SourceRecordset = RS
...
DC1.SubmitChanges

步骤 6b — 通过 RDSServer.DataFactory 将更改返回服务器

DF.SubmitChanges "DSN=pubs", RS

End Sub
</SCRIPT>
</BODY>
</HTML>

本教程到此结束。
************
步骤 1: 指定服务器程序(RDS 教程)


您所在的步骤...

指定在服务器上被调用的程序,并获得代理。


调用服务器程序,将参数传递给标识数据源和所发命令的服务器程序。


典型情况下,通过使用 ADO,服务器程序从数据源获得 Recordset 对象。


服务器程序将最终的 Recordset 对象返回客户端应用程序。


在客户端,可选择将 Recordset 对象置为易于可视控件使用的形式。


将对 Recordset 对象的更改返回服务器并用来更新数据源。
讨论

大多数情况下,使用 RDS.DataSpace 对象 CreateObject 方法来指定默认服务器程序、RDSServer.DataFactory 或自定义服务器程序(业务对象)。服务器程序在服务器上是实例化的,而返回的是对服务器程序的引用即代理。

本教程使用默认服务器程序:

Sub RDSTutorial1()
Dim DS as New RDS.DataSpace
Dim DF as Object
Set DF = DS.CreateObject("RDSServer.DataFactory", "http://yourServer")
...

下一页 步骤 2
*************
步骤 2: 调用服务器程序(RDS 教程)


您所在的步骤...

指定在服务器上调用的程序,并获得代理。


调用服务器程序,将参数传递给表明数据源和所发命令的服务器程序。


典型情况下通过使用 ADO,服务器程序从数据源获得 Recordset 对象。


服务器程序将最终的 Recordset 对象返回客户端应用程序。


在客户端,可选择将 Recordset 对象设置为可视控件易于使用的形式。


将对 Recordset 对象的更改返回服务器,并用来更新数据源。
讨论

当调用客户端代理程序的方法时,服务器上的实际程序将执行该方法。在该步骤中,将在服务器上执行查询。

A 部分 在本教程中,如果不使用 RDSServer.DataFactory,那么执行该步骤最简便方法是使用 RDS.DataControl 对象。RDS.DataControl 将该步骤和上一步骤中的创建代理合并,用于发出查询。

设置 RDS.DataControl 对象 Server 属性以标识服务器程序被实例化的位置;设置 Connect 属性以指定访问数据源的连接字符串;设置 SQL 属性以指定查询命令文本。然后发出 Refresh 方法使服务器程序与数据源相连接,检索查询指定的行,并将 Recordset 对象返回客户端。

该教程不使用 RDS.DataControl,仅在这里给出它的形式:

Sub RDSTutorial2A()
Dim DC as New RDS.DataControl
DC.Server = "http://yourServer"
DC.Connect = "DSN=pubs"
DC.SQL = "SELECT * FROM authors"
DC.Refresh
...

本教程同样不使用 ADO 对象调 RDS,我们仍在这里给出它的形式:

Dim rs as New ADODB.Recordset
rs.Open "SELECT * FROM authors", "Provider=MS Remote;Data Source=pubs;Remote Server=http://YourServer"

B 部分 执行该步骤的一般方法是调用 RDSServer.DataFactory 对象的 Query 方法。该方法使用用于连接数据源的连接字符串,以及用于指定从数据源返回行的命令文本。

该教程使用 RDSServer.DataFactory Query 方法:

Sub RDSTutorial2B()
Dim DS as New RDS.DataSpace
Dim DF
Dim RS as ADODB.Recordset
Set DF = DS.CreateObject("RDSServer.DataFactory", "http://yourServer")
Set RS = DF.Query ("DSN=pubs", "SELECT * FROM authors")
...

下一页 步骤 3

******************************
步骤 3: 服务器获得 Recordset(RDS 教程)


您所在的步骤...

指定在服务器上调用的程序,并获得代理。


调用服务器程序,将参数传递给标识数据源和所发命令的服务器程序。


典型情况下通过使用 ADO,服务器程序从数据源获得 Recordset 对象。


服务器程序将最终的 Recordset 对象返回客户端应用程序。


在客户端,可选择将 Recordset 对象设置为可视控件易于使用的形式。


将对 Recordset 对象的更改返回服务器,并用来更新数据源。
讨论

服务器程序使用连接字符串和命令文本在数据源查询所需的行。尽管也可以使用其他 Microsoft 数据访问接口如 OLE DB 等,但一般使用 ADO 检索该 Recordset。有关执行查询操作的详细信息,请参阅 ADO 教程。

自定义服务器程序可参照如下:

Public Function ServerProgram(conn as String, qry as String) as Object
Dim rs as New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open cn, qry, adOpenUnspecified, adLockUnspecified, _
adCmdUnspecified
Set ServerProgram = rs
End Function

***************************
步骤 4: 服务器返回 Recordset(RDS 教程)


您所在的步骤...

指定在服务器上调用的程序,并获得代理。


调用服务器程序,将参数传递给表明数据源和所发命令的服务器程序。


典型情况下通过使用 ADO,服务器程序从数据源获得 Recordset 对象。


服务器程序将最终的 Recordset 对象返回客户端应用程序。


在客户端,可选择将 Recordset 对象设置为可视控件易于使用的形式。


将对 Recordset 对象的更改返回服务器并用于数据源的更新。
讨论

RDS 将被检索的 Recordset 对象转换为可返回客户端的形式(即整理 Recordset)。实际的转换形式以及发送方法取决于服务器是否位于 Internet 或 Intranet、局域网或动态链接库。不过该细节并不是关键。总之,RDS 将 Recordset 返回到客户端。

在客户端,Recordset 对象被返回并赋给本地变量。

Sub RDSTutorial4()
Dim DS as New RDS.DataSpace
Dim RS as New ADODB.Recordset '可选择 ADOR.Recordset
Dim DF as Object
Set DF = DS.CreateObject("RDSServer.DataFactory", "http://yourServer")
Set RS = DF.Query("DSN=pubs", "SELECT * FROM authors")
...

下一页 步骤 5
*******************************
步骤 5: 使用 DataControl(RDS 教程)


您所在的步骤...

指定在服务器上调用的程序,并获得代理。


调用服务器程序,将参数传递给表明数据源和所发命令的服务器程序。


较为典型的是通过使用 ADO,服务器程序从数据源获得 Recordset 对象。


服务器程序将最终的 Recordset 对象返回客户端应用程序。


在客户端,可选择将 Recordset 对象设置为可视控件易于使用的形式。


将对 Recordset 对象的更改返回服务器,并用来更新数据源。
讨论

返回的 Recordset 对象已经可以使用。可以对它进行同其他记录集一样的检查、定位或编辑。对记录集进行的操作取决于相应的环境。Microsoft Visual Basic 和 Visual C++ 都具有可直接地、或通过启用数据控件间接地使用 Recordset 的可视控件。

例如,如果正在使用 Microsoft? Internet Explorer 显示 Web 页,可能希望在可视控件中显示 Recordset 对象。Web 页上的可视控件无法直接访问 Recordset 对象。但是,可以通过 RDS.DataControl 访问 Recordset 对象(即绑定)。当它的 SourceRecordset 属性设置为 Recordset 对象时,RDS.DataControl 便可被可视控件使用。

使用可视控件对象须将其 DATASRC 参数设置为 RDS.DataControl,并将 DATAFLD 属性设置为 Recordset 对象字段(列)。

在本教程中,设置 SourceRecordset 属性。

Sub RDSTutorial5()
Dim DS as New RDS.DataSpace
Dim RS as New ADODB.Recordset '可选择 ADOR.Recordset
Dim DC as New RDS.DataControl
Dim DF as Object
Set DF = DS.CreateObject("RDSServer.DataFactory", "http://yourServer")
Set RS = DF.Query ("DSN=pubs", "SELECT * FROM authors")
DC.SourceRecordset = RS '可视控件现在可绑定到 DC。
...

下一页 步骤 6
**************************
步骤 6: 将更改返回服务器(RDS 教程)


您所在的步骤...

指定在服务器上调用的程序,并获得代理。


调用服务器程序,将参数传递给表明数据源和所发命令的服务器程序。


较为典型的是通过使用 ADO,服务器程序从数据源获得 Recordset 对象。


服务器程序将最终的 Recordset 对象返回客户端应用程序。


在客户端,可选择将 Recordset 对象置为易于可视控件使用的形式。


将对 Recordset 对象的更改返回服务器并用来更新数据源。
讨论

如果对 Recordset 对象进行编辑,任何更改(即对行的增加、修改或删除)都可以返回服务器。

注意 RDS 的默认行为可通过 ADO 对象和 MS 远程提供者隐式调用。查询可返回记录集,而被编辑的记录集则可更新数据源。本教程不通过 ADO 对象调用 RDS,但在这里给出它的形式:

Dim rs as New ADODB.Recordset
rs.Open "SELECT * FROM authors", "Provider=MS Remote;Data Source=pubs;Remote Server=http://YourServer"
... '编辑记录集
rs.UpdateBatch '与 SubmitChanges 等值
...
A 部分 假设在这里只使用了 RDS.DataControl 并且 Recordset 对象现在已与 RDS.DataControl 关联。如果 Server 和 Connect 属性已设置,SubmitChanges 方法将把对 Recordset 对象的任何改动更新到数据源。

Sub RDSTutorial6A()
Dim DC as New RDS.DataControl
Dim RS as New ADODB.Recordset '可选择 ADOR.Recordset
DC.Server = "http://yourServer"
DC.Connect = "DSN=pubs"
DC.SQL = "SELECT * FROM authors"
DC.Refresh
...
Set RS = DC.Recordset
... '编辑记录集
...
DC.SubmitChanges
...

B 部分 另外,您也可以通过指定连接和 Recordset 对象,使用 RDSServer.DataFactory 对象更新服务器。

Sub RDSTutorial6B()
Dim DS as New RDS.DataSpace
Dim RS as New ADODB.Recordset '可选择 ADOR.Recordset
Dim DC as New RDS.DataControl
Dim DF as Object
Set DF = DS.CreateObject("RDSServer.DataFactory", "http://yourServer")
Set RS = DF.Query ("DSN=pubs", "SELECT * FROM authors")
DC.SourceRecordset = RS '可视控件现在可绑定到 DC.
... '编辑 Recordset
blnStatus = DF.SubmitChanges "DSN=pubs", RS
viking 2001-09-16
  • 打赏
  • 举报
回复


RDS (Remote Data Service) 只要安装了 vb 就会有这个控件,你可以在 MSDN 里边查看关于 RDS 的信息,因为我的硬盘都被格式化好多次了,原来的程序根本就找不到了,希望下边这点可以对你有所帮助,这是我们当时使用的最重要的参数!如果你安装了 visual interdev 的话,直接输入新建立的 RDS 的对象名,就可以看到它的方法属性,这里我就不多说了。如果能找到详细的源代码,我再给你吧!


<object align=baseline classid:clsid:bd96c556-65a3-11dd-983a-00c04fc29e33 height=1 id=rds1 width=1 border=1>
<param name="executeoptions" value="2">
<param name="fechoptions" value="3">
<param name="sordirection" value="-1">
<param name="internettimeout" vlaue="300000">
<param name="server" value="<%=request.serveraribles("server_name")%>">
<param name="connect" value="dsn=datasource;uid=sa;pwd="
<object>

viking 2001-09-16
  • 打赏
  • 举报
回复


我很早的时候编过一个专家系统,使用了 RDS ,还不错。后来离开那个公司后又用过几次,

再给你找找源码!别急,很快。

我的妹儿:viking2001@china.com

杂家老周 2001-09-16
  • 打赏
  • 举报
回复
给分我吧,RDS是一个客户端的控件,它有服务器,用户名,密码,数据库等参数设置,它要找到它的支持文件,你查查,那个文件名叫什么我记不得了
cccmx 2001-09-16
  • 打赏
  • 举报
回复
viking(海盗):一定给分,我已经给了你20分了
cccmx 2001-09-15
  • 打赏
  • 举报
回复
??

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧