vb 读取记录集文件


问题:


如何导入用ADODB.Recordset.Save保存的XML文件到新的Recordset?《ADO/DAO/ADO.NET》
我用了上述方法保存了 XML ,但是格式好怪呀:


    
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
    


    
    
    



像这样的 XML 我用 Application.ImportXML 根本无法导入,该如何进行导入?
 

回答:



ADODB.Recordset.Save 的 XML 的格式比较特别,不是采用常见的标记的方式来标记所有数据,而是使用属性(Attribute)来标记结构后再用属性来标记数据,所以普通的 XML 解析方式是无法读取其数据的。
用以下代码可以实现

'===========================================================
' 过程及函数名:  RSSaveToXmlAndCheckAgain
' 版本号      :  1.0
' 说明        :  本函数作用:将某个 RS 的内容 SAVE 到 XML 
'                 中,并验证一下记录数量
' 引用        :  ADO 2.5 以上版本
' 输入参数    :  --
' 输出值      :  --
' 返回值      :  --
' 调用演示    :  --
' 最后修改日期:  2006-11-13 22:32:00
' 示例地址    :  http://access911.net/?kbid;72FABE1E17DCE6F3 
' 作者        :  cg1
' 网站        :  http://access911.net
' 电子邮件    :  [email protected]
'===========================================================

Function RSSaveToXmlAndCheckAgain()
    Dim rs As New ADODB.Recordset
    Dim strsql As String
    strsql = "select * from 表1"
    rs.Open strsql, CurrentProject.Connection, 1, 1
    k "c:\temp\rs.xml"
    rs.Save "c:\temp\rs.xml", adPersistXML
    
    Dim rs1 As New ADODB.Recordset
    rs1.CursorLocation = adUseClient
    rs1.Open "c:\temp\rs.xml"
    Debug.Print rs1.RecordCount
End Function

'===========================================================
' 过程及函数名:  k
' 版本号      :  1.0
' 说明        :  本函数作用:如果某个文件存在就删除,不存在
'                 就什么也不做
' 引用        :  --
' 输入参数    :  strPath 文本,文件的路径
' 输出值      :  --
' 返回值      :  --
' 调用演示    :  --
' 最后修改日期:  2006-11-13 22:32:00
' 示例地址    :  http://access911.net/?kbid;72FABE1E17DCE6F3 
' 作者        :  cg1
' 网站        :  http://access911.net
' 电子邮件    :  [email protected]
'===========================================================

Function k(ByVal strPath)
On Error Resume Next
    Kill strPath
End Function



'===========================================================
' 过程及函数名:  ImportFromXML
' 版本号      :  1.0
' 说明        :  本函数作用:根据特定(RS.SAVE)的XML导入数据
'                 到现有的表中
' 引用        :  --
' 输入参数    :  --
' 输出值      :  --
' 返回值      :  --
' 调用演示    :  --
' 最后修改日期:  2006-11-13 22:32:00
' 示例地址    :  http://access911.net/?kbid;72FABE1E17DCE6F3 
' 作者        :  cg1
' 网站        :  http://access911.net
' 电子邮件    :  [email protected]
'===========================================================

Function ImportFromXML()
'注意,这的 表1 已经存在了,如果表1不存在,则需要用 XML DOM 分析 XML 以后建立对应的表和字段才能导入
    Dim rs As New ADODB.Recordset
    Dim strsql As String
    strsql = "select * from 表1"
    rs.Open strsql, CurrentProject.Connection, 2, 3

    Dim rs1 As New ADODB.Recordset
    rs1.CursorLocation = adUseClient
    rs1.Open "c:\temp\rs.xml"
    Debug.Print rs1.RecordCount
    Do Until rs1.EOF
        '具体导入代码,添加到现有表
        '....
        rs.AddNew
        rs("fa") = rs1("fa")
        '注意,这里不能包括主键 ID 字段,否则会因为重复而出错
        rs("fb") = rs1("fb")
        rs.Update
        rs1.MoveNext
    Loop
    rs1.Close
    rs.Close
    
End Function



 


本站文章旨在为该问题提供解决思路及关键性代码,并不能完成应该由网友自己完成的所有工作,请网友在仔细看文章并理解思路的基础上举一反三、灵活运用。

 

你可能感兴趣的:(vb 读取记录集文件)