除了使用自定义业务对象以外,下列客户端 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
提示