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

您所在的步骤...

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

 

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

 

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

 

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

 

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

 

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

讨论

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

注意   TRDS 的默认行为可通过 ADO 对象和 Microsoft OLE DB Remoting Provider 隐式调用。查询可返回记录集,而被编辑的记录集则可更新数据源。本教程不通过 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 and 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

...                           '编辑 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

本教程到此结束。