编写代码以便用自定义的 ActiveX DLL 传送 Recordset 对象

目录

除了使用自定义业务对象以外,下列客户端 Microsoft® Visual Basic® Scripting Edition 代码实现的操作与前面的 RDSServer.DataFactory 代码相同。您仍然可以在客户端上使用 RDS.DataSpace 对象创建服务器中业务对象的实例(在这种情况下是 MyCustomBusinessObject)。

<HTML>
<HEAD></HEAD>
<BODY><!-- RDS.DataControl -->
<OBJECT classid="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33" ID=ADC1>
</OBJECT>
<!-- RDS.DataSpace -->
<OBJECT ID="ADS1" WIDTH=1 HEIGHT=1
  CLASSID="CLSID:BD96C556-65A3-11D0-983A-00C04FC29E36">
</OBJECT>
.
.
.
<SCRIPT LANGUAGE="VBScript">
Option Explicit
Sub GetRecords()
  Dim objMyCustomBusinessObject, myRS
  Set objMyCustomBusinessObject = _
  ADS1.CreateObject("MyCustomBusinessObject", _
  "http://<%=Request.ServerVariables("SERVER_NAME")%>")
  ' 假定 MyCustomBusinessObject 具有
  ' 称为 GetData 的方法,该方法可获得连接字符串和SQL 参数。   
  ' parameters.
  Set myRS = _
  objCustomBusinessObject.GetData _
  ("DSN=pubs;UID=sa;PWD=permission;", _
  "Select * From Authors")
  ' 将返回的记录集赋给  SourceRecordset。
  ADC1.SourceRecordset = myRS
End Sub
</SCRIPT>
</BODY>
</HTML>

假定使用 Visual Basic 创建位于中间层上的 MyCustomBusinessObject ActiveX DLL,那么 MyCustomBusinessObject 类中 GetData 方法的代码应该与如下代码类似。注意您可以直接使用 ActiveX® 数据对象 (ADO)。

'返回 ADO 结果集。
Public Function GetData(szCnStr As String, szSQL _
  As String) As Object  Dim cn As New ADODB.Connection
  Dim rs As New ADODB.Recordset  cn.Open szCnStr
  ' ADODB.Recordset 应该生成 Recordset
  ' 对象,该对象可以被断开,随后   
  ' 再恢复连接以处理批更新。
  rs.CursorLocation = adUseClientBatch
  ' 使用非指定参数,ADO/R
  '记录集被返回。
  rs.Open szSQL, cn, _
  adOpenUnspecified, adLockUnspecified, _
  adCmdUnspecified
  Set GetData = rs
End Function

提示 

www.holmesian.org