从XML读取ADODB.Recordset错误(ADODB.Stream)

时间:2015-05-12 19:22:12

标签: xml vb6 adodb recordset

我将从场景开始:

  1. 我有一个vb 6应用程序,它将从Web服务获取数据并使用ADODB.Recordset管理该数据
  2. 为了实现这一点,我创建了一个连接到Web服务的DLL,并以下列格式创建了一个xml(从MSDN支持中检索到):

        Dim RS As ADODB.Stream
        Set RS = New ADODB.Stream
        RS.Open
        RS.WriteText XML 'This have the XML string 
    
        RS.Position = 0
    
        Dim recset As ADODB.Recordset
        Set recset = New ADODB.Recordset
    
        recset.Open RS
    
        RS.Close
        Set RS = Nothing
    
  3. 此xml作为字符串返回到VB 6,我使用以下代码段将其转换为ADODB.Recordset对象:

       <xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
        xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
        xmlns:rs='urn:schemas-microsoft-com:rowset'
        xmlns:z='#RowsetSchema'>
        <s:Schema id='RowsetSchema'><s:ElementType name='row' content='eltOnly' rs:updatable='true'>
                <s:AttributeType name='Column2' rs:number='1'>
                    <s:datatype dt:type='string' dt:maxLength='4294967295' rs:long='true'/>
                </s:AttributeType><s:AttributeType name='Column3' rs:number='2'>
                    <s:datatype dt:type='string' dt:maxLength='4294967295' rs:long='true'/>
                </s:AttributeType>
         </s:Schema>
         <rs:data>
         <z:row Column2 = "ABC" Column3 = "DEF"/>
         <z:row Column2 = "JKL" Column3 = "MNO"/>
         </rs:data>
         </xml>
    

    现在,这个执行得很好但是当我尝试使用Column1时,我得到一些关于某些缺失列的运行时错误。当我检查记录集时,将其转换为XML进行比较,我得到了这个:

    .sln

    出于某种原因,它正在从xml中删除第一列,但是将其取值并将其用于其余列。我试图添加一个虚拟列,但它不起作用。我添加了一个ID列,但它没有用。

    关于为什么会发生这种情况的任何想法?此记录集用于填充数据网格视图。有没有可用于从XML字符串加载数据的ADO Recordset的VB 6对象?

0 个答案:

没有答案