此頁沒有內(nèi)容條目
內(nèi)容

編寫代碼以便用自定義的 ActiveX DLL 傳送 Recordset 對象

除了使用自定義業(yè)務(wù)對象以外,下列客戶端 Microsoft? Visual Basic? Scripting Edition 代碼實現(xiàn)的操作與前面的 RDSServer.DataFactory 代碼相同。您仍然可以在客戶端上使用 RDS.DataSpace 對象創(chuàng)建服務(wù)器中業(yè)務(wù)對象的實例(在這種情況下是 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 參數(shù)。  

  ' 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 創(chuàng)建位于中間層上的 MyCustomBusinessObject ActiveX DLL,那么 MyCustomBusinessObject 類中 GetData 方法的代碼應(yīng)該與如下代碼類似。注意您可以直接使用 ActiveX? 數(shù)據(jù)對象 (ADO)。

'返回 ADO 結(jié)果集。

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 應(yīng)該生成 Recordset

  ' 對象,該對象可以被斷開,隨后  

  ' 再恢復(fù)連接以處理批更新。

  rs.CursorLocation = adUseClientBatch

  ' 使用非指定參數(shù),ADO/R

  '記錄集被返回。

  rs.Open szSQL, cn, _

  adOpenUnspecified, adLockUnspecified, _

  adCmdUnspecified

  Set GetData = rs

End Function

提示

?在試圖將 Recordset 對象返回之前,把一個簡單的方法放在服務(wù)器組件中來測試最小的功能。

 

?在用 Internet Explorer 部署和測試服務(wù)器組件之前,構(gòu)造簡單的客戶應(yīng)用程序?qū)λM行測試。

 

?在本地測試 Web 服務(wù)器上開發(fā)應(yīng)用程序要更方便一些。在每次編譯后需要在測試服務(wù)器上復(fù)制并注冊 .dll。

 

?傳送到業(yè)務(wù)對象的 DSN 應(yīng)該是服務(wù)器上的“系統(tǒng) DSN”。如果它不存在或沒有正確設(shè)置,那么用戶組件將失敗。最好用其它的 ODBC 應(yīng)用程序(例如 MSQuery)來測試服務(wù)器上的 DSN 以確保正確設(shè)置 DSN。

 

?自定義業(yè)務(wù)對象上的方法名不能超過 255 個字符,以確保能兼容 RDS 支持的所有協(xié)議(HTTP、HTTPS、DCOM 和進程內(nèi))。

 

?如果使用 Visual Basic 創(chuàng)建的自定義業(yè)務(wù)對象使用以前與 ADOR 1.0 類型庫的綁定,那么應(yīng)該將自定義業(yè)務(wù)對象重新構(gòu)造為使用 ADOR 2.0 類型庫。