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

Anwendungsbereich:yesSQL Server (alle unterstützten Versionen) YesAzure SQL-Datenbank

In diesem Beispiel wird die Verwendung der folgenden SQLXMLOLEDB-anbieterspezifischen 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 auf oberster Ebene für das XML-Dokument bereit, das generiert wird.

Hinweis

Im Code müssen Sie den Namen der Instanz von Microsoft SQL Server im Verbindungszeichenfolge angeben. In diesem Beispiel wird auch die Verwendung des SQL Server Native Client (SQLNCLI11) für den Datenanbieter angegeben, der zusätzliche Netzwerkclientsoftware erfordert, die installiert werden soll. 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