代码之家  ›  专栏  ›  技术社区  ›  Max Power

MSDatashape已弃用

  •  0
  • Max Power  · 技术社区  · 6 年前

    https://docs.microsoft.com/en-us/sql/ado/guide/appendixes/microsoft-data-shaping-service-for-ole-db-ado-service-provider?view=sql-server-2017

    此功能正在删除,建议使用XML。有人这样做过吗?我想知道它们是什么意思,通过使用XML加载MSDataShape的结构,还是仅仅使用XML对象?

    短暂性脑缺血发作

    2 回复  |  直到 6 年前
        1
  •  0
  •   Adrian    6 年前

    我相信这是指 FOR XML T-SQL的子句,它执行与MSDataShape几乎相同的工作,因为它返回分层嵌套的数据。

    将MSDataShape查询移植到 FOR XML

    在客户端,SAX或pull解析最适合于以前使用MSDataShape的端口代码(MSDataShape也有一个基于记录游标的模型)。

        2
  •  0
  •   Max Power    6 年前

    这是我的一段代码,很有帮助。我的MSDataShape代码仍然有效,因此我建议使用它来生成XML作为模板,然后使用它加载它们:-

    Dim objShapeMaker   As clsShapeMaker
    Dim rsoTemp         As ADODB.Recordset
    Dim strXMLTemplate  As String
    
    ' Template file
    strXMLTemplate = "C:\Temp\Template_GI.xml"
    
    ' Create the MSDataShape and save it to XML
    Set rsoTemp = objShapeMaker.CreateGI()
    rsoTemp.Save strXMLTemplate, adPersistXML
    
    ' Now we have the XML in a file going forward, load it in my recordset
    Set rsoTemp = New ADODB.Recordset
    rsoTemp.Open strXMLTemplate, , , , adCmdFile
    
    ' Cleanup
    Set rsoTemp = Nothing
    Set objShapeMaker = Nothing
    

    here

    编辑1

    编辑2