代码之家  ›  专栏  ›  技术社区  ›  George

如何从SQL Server 2005检索XML数据?

  •  5
  • George  · 技术社区  · 17 年前

    我的脚本:

    Dim myStream, myConnection, myCommand
    Set myStream = CreateObject("ADODB.Stream")
    Set myConnection = CreateObject("ADODB.Connection")
    Set myCommand = CreateObject("ADODB.Command")
    '
    myConnection.Open "Provider=SQLOLEDB;Integrated Security=SSPI;" & _
    "Persist Security Info=False;Initial Catalog=DSIPAR;Data Source=.\DSIDATA"
    
    myCommand.ActiveConnection = myConnection
    
    myCommand.CommandText = "SELECT itemsgt, item FROM NIFItem"
    
    myStream.Open
    
    myCommand.Properties("Output Stream") = myStream
    myCommand.Execute , , adExecuteStream
    
    myStream.Position = 0
    myStream.Charset = "ISO-8859-1"
    
    Dim strxml
    strxml = myStream.ReadText
    MsgBox (strxml)
    

    我可以运行该脚本,并且可以看到查询在我的SQL server实例上执行,但任何内容都不会返回到输出流中。

    1 回复  |  直到 9 年前
        1
  •  5
  •   Jose Basilio    17 年前

    完整代码:

    Dim myStream, myConnection, myCommand
    Set myStream = CreateObject("ADODB.Stream")
    Set myConnection = CreateObject("ADODB.Connection")
    Set myCommand = CreateObject("ADODB.Command")
    myConnection.Open "Provider=SQLOLEDB;Integrated Security=SSPI;" & _
    "Persist Security Info=False;Initial Catalog=DSIPAR;Data Source=.\DSIDATA"
    myCommand.ActiveConnection=myConnection
    
    myCommand.CommandText="SELECT itemsgt,item FROM NIFItem FOR XML AUTO"
    
    myStream.Open
    myCommand.Properties("Output Stream") = myStream
    myCommand.Properties("xml root") = "root"
    
    myCommand.Execute ,,1024 'instead of adExecuteStream
    myStream.Position=0
    myStream.Charset="ISO-8859-1"
    Dim strxml
    strxml = myStream.ReadText
    MsgBox (strxml)
    

    Dim myStream, myConnection, myCommand, adoRec
    Set myStream = CreateObject("ADODB.Stream")
    Set myConnection = CreateObject("ADODB.Connection")
    Set myCommand = CreateObject("ADODB.Command")
    myConnection.Open "Provider=SQLOLEDB;Integrated Security=SSPI;" & _
    "Persist Security Info=False;Initial Catalog=DSIPAR;Data Source=.\DSIDATA"
    myCommand.ActiveConnection=myConnection
    myCommand.CommandText="SELECT itemsgt,item FROM NIFItem"
    SET adoRec = myCommand.Execute()
    'Get the first results
    If Not adoRec.EOF then
      MsgBox "itemsgt = "  & adoRec(0) & vbcrlf & "item="  &  adoRec(1)
    End If
    
    'Iterate through the results
    While Not adoRec.EOF
      itemsgt = adoRec(0)
      item = adoRec(1)
      'MsgBox "itemsgt = " & itemsgt & vbcrlf & "item="  & item
      adoRec.MoveNext
    Wend