Ausführen von SQL-Abfragen (SQLXMLOLEDB-Anbieter)

Gilt für:SQL ServerAzure SQL-Datenbank

In diesem Beispiel wird die Verwendung der folgenden anbieterspezifischen SQLXMLOLEDB-Eigenschaften veranschaulicht:

  • Clientsidexml

  • XML-Stamm

In dieser clientseitigen ADO-Beispielanwendung wird eine einfache SQL-Abfrage auf dem Client ausgeführt. Da die ClientSideXML-Eigenschaft auf True festgelegt ist, wird die SELECT-Anweisung ohne die FOR XML-Klausel an den Server gesendet. Der Server führt die Abfrage aus und gibt ein Rowset an den Client zurück. Der Client wendet dann die FOR XML-Transformation auf das Rowset an und generiert ein XML-Dokument.

Die xml-Stammeigenschaft stellt das einzelne Stammelement der obersten Ebene für das generierte XML-Dokument bereit.

Hinweis

Im Code müssen Sie den Namen der instance von Microsoft SQL Server in der Verbindungszeichenfolge angeben. Außerdem wird in diesem Beispiel die Verwendung des SQL Server Native Client (SQLNCLI11) für den Datenanbieter angegeben, sodass zusätzliche Netzwerkclientsoftware installiert werden muss. Weitere Informationen finden Sie unter Systemanforderungen für SQL Server Native Client.

Option Explicit  
Sub main()  
Dim oTestStream As New ADODB.Stream  
Dim oTestConnection As New ADODB.Connection  
Dim oTestCommand As New ADODB.Command  
  
oTestConnection.Open "provider=SQLXMLOLEDB.4.0;data provider=SQLNCLI11;data source=SqlServerName;initial catalog=AdventureWorks;Integrated Security=SSPI ;"  
oTestCommand.ActiveConnection = oTestConnection  
oTestCommand.Properties("ClientSideXML") = True  
oTestCommand.CommandText = "SELECT TOP 10 FirstName, LastName FROM Person.Contact FOR XML AUTO"  
oTestStream.Open  
oTestCommand.Properties("Output Stream").Value = oTestStream  
oTestCommand.Properties("xml root") = "root"  
oTestCommand.Execute , , adExecuteStream  
  
oTestStream.Position = 0  
oTestStream.Charset = "utf-8"  
Debug.Print oTestStream.ReadText(adReadAll)  
End Sub  
Sub Form_Load()  
 main  
End Sub