Udostępnij przez


Wykonywanie szablony zawierające kwerendy SQL (Dostawca SQLXMLOLEDB)

Ten przykład ilustruje użycie właściwość SQLXMLOLEDB specyficznych dla dostawca ClientSideXML. W tej przykładowej aplikacji obiektów ADO klient szablonu XML, który składa się z kwerendę SQL jest wykonywany na serwerze.

Ponieważ ClientSideXML Właściwość jest ustawiona na wartość true, instrukcja SELECT bez klauzula FOR XML jest wysyłany do serwera. Serwer wykonuje kwerendę i zwraca klientowi zestawu zestaw wierszy.Klient następnie stosuje transformacja FOR XML do zestawu zestaw wierszy i tworzy dokument XML.

Szablon XML oferuje (element do pojedynczego najwyższego poziom głównego<KATALOG GŁÓWNY>) do dokumentu XML, który jest generowany; dlatego xml root Właściwość nie jest wymagane.

Wykonać szablony XML, musi być określony dialekt {5d531cb2-e6ed-11 d 2-b252-00c04f681b71}.

Uwaga

W kodzie musisz podać nazwę wystąpienie programu SQL Server w ciąg połączenia. Ponadto w tym przykładzie określa używanie SQL Server Macierzysty klient (SQLNCLI10) dla dostawca danych, który wymaga oprogramowanie klient sieciowego dodatkowe mają być zainstalowane. Aby uzyskać więcej informacji zobaczWymagania systemowe dla programu SQL Server 2008 Native klient.

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;"

  Set oTestCommand.ActiveConnection = oTestConnection
  oTestCommand.Properties("ClientSideXML") = True
  oTestCommand.CommandText = "<ROOT xmlns:sql='urn:schemas-microsoft-com:xml-sql'> " & _
        " <sql:query> " & _
        "   SELECT TOP 10 FirstName, LastName FROM Person.Contact FOR XML AUTO " & _
        "   </sql:query> " & _
        " </ROOT> "
  oTestStream.Open
  ' You need the dialect if you are executing 
  ' XML templates (not for SQL queries).
  oTestCommand.Dialect = "{5d531cb2-e6ed-11d2-b252-00c04f681b71}"
  oTestCommand.Properties("Output Stream").Value = oTestStream
  oTestCommand.Execute , , adExecuteStream

  oTestStream.Position = 0
  oTestStream.Charset = "utf-8"
  Debug.Print oTestStream.ReadText(adReadAll)
End Sub

Sub Form_Load()
  Main
End Sub