【www.gdgbn.com--WebService】

和调整你的企业和商务系统(Ⅲ:SOAP、WebService、Server)
小气的神 2001-10-12
    好了,终于可以开始使用Microsoft SOAP Toolkit将上面的建立的Bus_Authors转换成一个WebService了,我使用的是Microsoft SOAP Toolkit 2.0 SP2,简单的Version()的我就跳过了,不再废话,MS的随机帮助有这方面的说明。因为我更感兴趣ADODB.Recordset的问题,不过失望的是,使用WSDL Generator产生的WSDL不能支持ADODB.Recordset的类型
产生的WSDL文件中,产生这样的XML:
  
  

  
    
  

根据随机文档特别是Handling Complex Types一节中的描述,我们需要使用一个Custom Type Mapper(CTM)来处理ADODB.Recordset的格式。先讲一下下面需要做的步骤吧:
1.   生成一个自定义的类型转换类处理ADODB.Reocrdset类型
2.   修改由WSDL Generator产生的WSDL文件。
3.   设置IIS,配置好Authors的WebService
4.   产生客户端测试这个WebService
先来生成ADODB.Recordset 的CTM,主要是实现SOAP Toolkit库中的MSSOAPLib.ISoapTypeMapper接口,这一点上我认为是MS SOAP Toolkit 2.0 的一个重大提高,比起上一个SOAP Toolkit版本更组件化和易于使用,现在你用VB就可以完成这个CTM了,建立一个VB ActiveX DLL项目,拷入下面的代码,(我产生的组件叫AdoTypeMapper.AdoRstTypeMapper)如果另外安装了MS SOAP Toolkit 2.0里面好像有一个这样的ADODB.Recorset的例子。
Option Explicit
Implements MSSOAPLib.ISoapTypeMapper
Private Function ISoapTypeMapper_read( _
    ByVal pNode As MSXML2.IXMLDOMNode, _
    ByVal bstrEncoding As String, _
    ByVal encodingMode As MSSOAPLib.enEncodingStyle, _
    ByVal lFlags As Long) As Variant
    Dim RecordSet As New ADODB.RecordSet

本文来源:http://www.gdgbn.com/asp/6271/