DataControl 对象 (RDS)

将数据查询 Recordset 绑定到一个或多个控件(例如,文本框、网格控件或组合框),以在网页上显示 Recordset 数据。

重要

从 Windows 8 和 Windows Server 2012 开始,Windows 操作系统不再包含 RDS 服务器组件(有关更多详细信息,请参阅 Windows 8 和 Windows Server 2012 兼容性实用手册)。 Windows 的未来版本中将移除 RDS 客户端组件。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 使用 RDS 的应用程序应迁移到 WCF 数据服务

语法

  
<OBJECT CLASSID="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33" ID="DataControl"  
   <PARAM NAME="Connect" VALUE="DSN=DSNName;UID=MyUserID;PWD=<password>;">  
   <PARAM NAME="Server" VALUE="https://awebsrvr">  
   <PARAM NAME="SQL" VALUE="QueryText">  
</OBJECT>  

备注

RDS.DataControl 对象的类 ID 是 BD96C556-65A3-11D0-983A-00C04FC29E33。

注意

如果遇到 RDS.DataSpace 或 RDS.DataControl 对象无法加载的错误,请确保使用的是正确的类 ID。 这些对象的类 ID 已从版本 1.0 更新到 1.1。 另请注意,在使用 RDS DataControl 对象时,即使是可为空的列也必须设置。

对于基本场景,只需设置 RDS.DataControl 对象的 SQL、Connect 和 Server 属性。该对象将自动调用默认业务对象 RDSServer.DataFactory

RDS.DataControl 中的所有属性都是可选的,因为自定义业务对象可以替换其功能

注意

如果查询多个结果,则只会返回第一个 Recordset。 如果需要多个结果集,请将每个结果集分配给其自己的 DataControl。 针对多个结果的查询示例如下:"Select * from Authors, Select * from Topics"

使用 RDS.DataControl 对象时,如果将“DFMode=20;”添加到连接字符串,那么更新数据时,将可以提高服务器的性能。 通过此设置,服务器上的 RDSServer.DataFactory 对象使用占用更少资源的模式。 不过,以下功能在此配置中不可用:

  • 使用参数化查询。

  • 在调用 Execute 方法之前获取参数或列信息。

  • 将“事务处理更新”设置为 True。

  • 获取行状态。

  • 调用 Resync 方法。

  • 通过 Update Resync 属性进行刷新(显式或自动)。

  • 设置 Command 或 Recordset 属性

  • 使用 adCmdTableDirect

默认情况下,RDS.DataControl 对象以异步模式运行。 如果应用程序需要同步执行,请将 ExecuteOptions 参数设置为 adcExecSync,并将 FetchOptions 参数设置为 adcFetchUpFront,如以下示例所示

<OBJECT CLASSID="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33"   
    ID="DataControl"  
   <PARAM NAME="Connect" VALUE="DSN=DSNName;UID=MyUserID;PWD=<password>;">  
   <PARAM NAME="Server" VALUE="https://awebsrvr">  
   <PARAM NAME="SQL" VALUE="QueryText">  
   <PARAM NAME="ExecuteOptions" VALUE="1">   <PARAM NAME="FetchOptions" VALUE="1">  
</OBJECT>  

使用 RDS. DataControl 对象将单个查询的结果链接到一个或多个视觉控件。 例如,假设你编写一个查询来请求姓名、居住地、出生地点、年龄和优先客户状态等客户数据。 可以使用一个 RDS.DataControl 对象在三个单独的文本框中显示客户的“姓名”、“年龄”和“区域”;在复选框中显示优先客户状态;并在网格控件中显示所有数据

使用不同的 RDS.DataControl 对象将多个查询的结果链接到不同的视觉控件。 例如,假设你使用一个查询来获取客户的相关信息,使用另一个查询来获取客户所购商品的相关信息。 你想在三个文本框和一个复选框中显示第一个查询的结果,并在网格控件中显示第二个查询的结果。 如果使用默认业务对象 (RDSServer.DataFactory),则必须执行以下操作

  • 将两个 RDS.DataControl 对象添加到网页

  • 编写两个查询,分别用于两个 RDS.DataControl 对象的 SQL 属性。 一个 RDS。DataControl 对象将包含请求客户信息的 SQL 查询;第二个对象将包含请求客户购买的商品列表的查询。

  • 在每个绑定控件的 OBJECT 标记中,指定 DATAFLD 值以设置要在每个视觉控件中显示的数据的值。

RDS.DataControl 对象的数量没有计数限制,你可在单个网页上使用 OBJECT 标记嵌入它们

在网页上定义 RDS.DataControl 对象时,请使用非零高度和宽度值,例如 1(以免包含额外的空格)

远程数据服务客户端组件已包含在 Internet Explorer 4.0 中;因此,无需在 RDS.DataControl 对象标记中包含 CODEBASE 参数

使用 Internet Explorer 4.0 或更高版本,仅当 HTML 控件和 ActiveX 控件被标记为单元模型控件时,才能绑定到数据。

注意

Microsoft Visual Basic 用户:RDS.DataControl 可安全地用于编写脚本,且只能在基于 Web 的应用程序中使用。 Visual Basic 客户端应用程序不需要它。

本部分包含以下主题。

另请参阅

DataControl 对象示例 (VBScript)