執行 SQL 查詢 (SQLXMLOLEDB 提供者)

適用範圍: 是SQL Server (所有支援的版本) 是Azure SQL Database

此範例示範如何使用下列 SQLXMLOLEDB 提供者專屬的屬性:

  • ClientSideXML

  • xml root

在此用戶端的 ADO 範例應用程式中,會在用戶端上執行簡單的 SQL 查詢。 因為 ClientSideXML 屬性設定為 True,所以不含 FOR XML 子句的 SELECT 語句會傳送至伺服器。 伺服器會執行查詢,並將資料列集傳回給用戶端。 用戶端接著會將 FOR XML 轉換套用至資料列集,並產生 XML 文件。

Xml 根屬性會為產生的 XML 檔提供單一最上層的根項目。

注意

在程式碼中,您必須於連接字串內提供 Microsoft SQL Server 執行個體的名稱。 此外,這個範例會指定針對資料提供者使用 SQL Server Native Client (SQLNCLI11) (需要安裝其他網路用戶端軟體)。 如需詳細資訊,請參閱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