执行 SQL 查询(SQLXMLOLEDB 访问接口)

该示例说明以下特定于 SQLXMLOLEDB 访问接口的属性的用法:

  • ClientSideXML

  • xml root

在该客户端 ADO 示例应用程序中,在客户端执行了一个简单 SQL 查询。由于 ClientSideXML 属性设置为 True,因此会将不含 FOR XML 子句的 SELECT 语句发送到服务器。服务器执行该查询,并将行集返回到客户端。然后客户端对行集应用 FOR XML 转换,并产生 XML 文档。

xml root 属性为所生成的 XML 文档提供一个顶级根元素。

注意注意

在该代码中,必须在连接字符串中提供 Microsoft SQL Server 实例的名称。此外,本示例还指定使用 SQL Server Native Client (SQLNCLI10) 作为数据访问接口,该访问接口需要安装其他网络客户端软件。有关详细信息,请参阅 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=SQLNCLI10;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