Freigeben über


Senden von SOAP-Anforderungen mithilfe des Visual Studio 2005-Clients (Visual Basic)

Diese Funktion wird in zukünftigen Versionen von Microsoft SQL Server nicht mehr bereitgestellt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird.

Das Beispiel in diesem Thema ist dem unter Senden von SOAP-Anforderungen mithilfe des Visual Studio 2005-Clients (C#) bereitgestellten ähnlich. Der einzige Unterschied besteht darin, dass dieses Beispiel in Visual Basic geschrieben ist. Daher werden in diesem Thema lediglich der erforderliche Code und die Schritte zum Erstellen des Beispiels bereitgestellt.

Erstellen eines funktionstüchtigen Beispiels

Da das Erstellen dieses Beispiels zahlreiche Schritte erfordert, wurde die Anwendung in vier Teile gegliedert:

  • Teil 1: Ausführen der gespeicherten Prozedur

  • Teil 2: Ausführen der SQL-Abfrage ohne Parameter

  • Teil 3: Ausführen der SQL-Abfrage mit Parametern

  • Teil 4: Ausführen der benutzerdefinierten Funktion

Jeder Teil stellt eine Reihe von Anweisungen bereit. Am Ende der einzelnen Teile können Sie die Anwendung testen.

So erstellen Sie die erforderliche Proxyklasse

  1. Erstellen Sie auf dem Computer einen Ordner für die Anwendung.

  2. Starten Sie auf dem Clientcomputer Microsoft Visual Studio 2005 über die Programmgruppe Microsoft Visual Studio 2005.

  3. Klicken Sie auf Neues Projekt.

  4. Wählen Sie als ProjekttypVisual Basic-Projekte aus.

  5. Geben Sie im Textfeld NameNativeSOAPApp2 an.

  6. Geben Sie im Textfeld Speicherort den Namen des Ordners an, in dem Sie das Projekt speichern möchten.

  7. Wählen Sie Windows-Anwendung als Vorlage aus, und klicken Sie auf OK.

  8. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Verweise, und wählen Sie anschließend Webverweis hinzufügen aus. Sie können Webverweise jedoch auch über die Option Webverweis hinzufügen im Menü Projekt hinzufügen.

  9. Geben Sie im Feld Adressehttps://Server/sql?wsdl ein, wobei Server für den Namen des Servers steht, und drücken Sie die EINGABETASTE. Wenn die WSDL-Generierung erfolgreich ist, wird die Endpunktbeschreibung angezeigt. Klicken Sie jetzt auf Verweis hinzufügen. Damit werden die erforderlichen Proxyklassen erstellt, und Sie können nun die Methoden in dem WSDL-Dokument aufrufen.

Teil 1: Ausführen der gespeicherten Prozedur

In diesem Teil fordert die Anwendung die GetCustomerInfo-Webmethode an.

  1. Fügen Sie in Form1 ein Textfeld (textBox1), eine Schaltfläche (button1) und ein Listenfeld (listBox1) hinzu.

  2. Klicken Sie mit der rechten Maustaste auf das Textfeld, und wählen Sie dann Eigenschaften aus. Ändern Sie den Wert Text von textBox1 zu 1. Dies ist der Standardwert für die Kunden-ID.

  3. Klicken Sie mit der rechten Maustaste auf button1, und wählen Sie dann Eigenschaften aus.

    1. Ändern Sie den Eigenschaftswert Text von button1 zu ExecSP.

    2. Ändern Sie den Eigenschaftswert (Name) zu ExecSP.

  4. Klicken Sie mit der rechten Maustaste auf das Listenfeld (listBox1), und wählen Sie dann Eigenschaften aus. Ändern Sie den Eigenschaftswert HorizontalScrollbar zu True.

  5. Doppelklicken Sie auf ExecSP.

  6. Kopieren Sie den Code aus der Visual Basic-Codeliste für ExecSP in diese Funktion.

  7. Aktualisieren Sie den Code. Ändern Sie die Verweise auf server so, dass sie dem Namen des Hosts entsprechen, der beim Erstellen des Endpunkts mithilfe von CREATE ENDPOINT identifiziert wurde.

  8. Speichern und kompilieren Sie das Projekt. Weitere Informationen hierzu finden Sie im vorherigen Abschnitt "Kompilieren des Codes".

Teil 2: Ausführen der SQL-Abfrage ohne Parameter

In diesem Teil führt die Clientanwendung eine Ad-hoc-Abfrage (FOR XML-Abfrage) aus, die Daten zu drei Mitarbeitern aus der Employee-Tabelle der AdventureWorks2008R2-Datenbank abruft.

  1. Fügen Sie in Form1 auf der Registerkarte [Entwurf] eine weitere Schaltfläche (button1) hinzu.

  2. Klicken Sie mit der rechten Maustaste auf die neue Schaltfläche, und wählen Sie dann Eigenschaften aus.

    1. Ändern Sie den Eigenschaftswert Text von button1 zu ExecBatchFindAllEmps.

    2. Ändern Sie den Eigenschaftswert (Name) zu ExecBatchFindAllEmps.

  3. Doppelklicken Sie auf ExecBatchFindAllEmp.

  4. Kopieren Sie den Code aus Visual Basic-Codeliste für FindAllEmps in diese Funktion.

  5. Aktualisieren Sie den Code. Ändern Sie die Verweise auf server so, dass sie dem Namen des Hosts entsprechen, der beim Erstellen des Endpunkts mithilfe von CREATE ENDPOINT identifiziert wurde.

  6. Speichern und kompilieren Sie das Projekt. Weitere Informationen hierzu finden Sie im vorherigen Abschnitt "Kompilieren des Codes".

Teil 3: Ausführen der SQL-Abfrage mit Parametern

Dieser Teil gleicht dem vorherigen Teil; die SOAP-Anforderung für die Ad-hoc-Abfrage erhält jedoch jetzt einen Abfrageparameter. Die FOR XML-Abfrage ruft Informationen zu dem Mitarbeiter mit der angegebenen Mitarbeiter-ID ab.

  1. Fügen Sie in Form1 auf der Registerkarte [Entwurf] eine Schaltfläche (button1) hinzu.

  2. Klicken Sie mit der rechten Maustaste auf die neue Schaltfläche, und wählen Sie dann Eigenschaften aus.

    1. Ändern Sie den Eigenschaftswert Text von button1 zu ExecBatchFindAnEmp.

    2. Ändern Sie den Eigenschaftswert (Name) zu ExecBatchFindAnEmp.

  3. Doppelklicken Sie auf ExecBatchFindAnEmp.

  4. Kopieren Sie den Code aus Visual Basic Code-Auflistung für FindAnEmp in diese Funktion.

  5. Aktualisieren Sie den Code. Ändern Sie die Verweise auf server so, dass sie dem Namen des Hosts entsprechen, der beim Erstellen des Endpunkts mithilfe von CREATE ENDPOINT identifiziert wurde.

  6. Speichern und kompilieren Sie das Projekt. Weitere Informationen hierzu finden Sie im vorherigen Abschnitt "Kompilieren des Codes".

Teil 4: Ausführen der benutzerdefinierten Funktion

In diesem Teil sendet die Clientanwendung eine SOAP-Anforderung für die UDFReturningScalar-Webmethode. Diese Webmethode entspricht einer benutzerdefinierten Funktion, die einen ganzzahligen Wert zurückgibt.

  1. Fügen Sie in Form1 auf der Registerkarte [Entwurf] eine weitere Schaltfläche (button1) hinzu.

  2. Klicken Sie mit der rechten Maustaste auf die neue Schaltfläche, und wählen Sie dann Eigenschaften aus.

    1. Ändern Sie den Eigenschaftswert Text von button1 zu ExecUDFReturningScalar, und

    2. ändern Sie den Eigenschaftswert (Name) zu ExecUDFReturningScalar.

  3. Doppelklicken Sie auf ExecUDFReturningScalar.

  4. Kopieren Sie den Code aus Visual Basic-Codeliste für ExecUDF in diese Funktion.

  5. Aktualisieren Sie den Code. Ändern Sie die Verweise auf den Server so, dass sie dem Namen des Hosts entsprechen, der beim Erstellen des Endpunkts mithilfe von CREATE ENDPOINT identifiziert wurde.

  6. Speichern und kompilieren Sie das Projekt. Weitere Informationen hierzu finden Sie im vorherigen Abschnitt "Kompilieren des Codes".

Da der Endpunkt die integrierte Authentifizierung angibt, enthält der Code die folgende Zeile: proxy.Credentials = System.Net.CredentialCache.DefaultCredentials.

Wenn Sie die SQL Server-Authentifizierung verwenden, wird empfohlen, diese Zeile zu entfernen und durch Code zu ersetzen, der WS-Security-Header in die bereitgestellten SQL Server-basierten Authentifizierungs-Anmeldeinformationen implementiert. Weitere Informationen finden Sie unter SQL Server-Authentifizierung über SOAP.

HinweisHinweis

Falls Sie die SQL Server-Authentifizierung oder die Standardauthentifizierung verwenden, erfordert SQL Server, dass Sie SSL (Secure Sockets Layer) zur sicheren verschlüsselten Übertragung der Anmeldeinformationen des Benutzers verwenden, die andernfalls als Klartext sichtbar wären. Weitere Informationen zum Aktivieren von SSL für HTTP-Endpunkte finden Sie unter Konfigurieren eines Zertifikats zur Verwendung durch SSL.

Kompilieren des Codes

SQL Server installiert .NET Framework 2.0 im Rahmen des Installationsvorgangs. Diese Kompilierungsanweisungen verwenden die aktuellste Version von .NET Framework, die Sie unter der höchsten Nummer im Ordner \WINDOWS\Microsoft.NET\Framework finden.

So kompilieren Sie den Code

  • Speichern Sie das gesamte Projekt.
  1. Öffnen Sie ein Eingabeaufforderungsfenster und gehen Sie in den Ordner, in dem das Projekt gespeichert wurde.

  2. Kopieren Sie die Datei Reference.vb aus dem Unterordner Web Reference\Server dieses Ordners (z. B. "Web Reference\Server\Reference.vb"). Die Dateien Form1.vb und Reference.vb müssen sich im selben Ordner befinden.

  3. Kompilieren Sie den Code, und geben Sie einen Namen für die ausführbare Datei (.exe) an. Wenn der Name der ausführbaren Datei beispielsweise NativeSOAPApp2.exe lautet, geben Sie in der Befehlszeile Folgendes ein:

    \WINDOWS\Microsoft.NET\Framework\v2.0.xxxxx\vbc.exe /out:NativeSOAPApp2.exe /r:System.dll /r:System.Data.dll /r:System.Xml.dll /r:System.Web.Services.dll /r:Microsoft.VisualBasic.dll /r:System.Drawing.dll /r:System.Windows.Forms.dll /m:Form1 Form1.vb Reference.vb

    xxxxx ist die Ordnernummer, die der Version von .NET Framework entspricht.

    Dieser Vorgang erstellt die ausführbare Datei (NativeSOAPApp2.exe) im aktuellen Verzeichnis.

    HinweisHinweis

    Wenn Sie eine frühere Version von .NET Framework verwenden, erhalten Sie möglicherweise einen Laufzeitfehler. In diesem Fall können Sie die gespeicherte Prozedur GetCustomerInfo aktualisieren, indem Sie die FOR XML AUTO-Klausel am Ende der SELECT-Anweisung hinzufügen, wie nachstehend gezeigt:

    SELECT TOP 3 SalesOrderID, OrderDate 
    FROM   SalesOrderHeader
    WHERE  CustomerID = @CustomerID
    FOR XML AUTO
    

Die Ergebnisse der ausgeführten gespeicherten Prozedur werden im Listenfeld angezeigt.