Freigeben über


sqloptions:hostname (Header-Element)

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.

Die sqloptions:hostName-Anmeldeoption ermöglicht dem Client das Angeben des Hostnamens für die Anmeldung. Beispiel:

<SOAP-ENV:Header
  xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
  xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
    <sqloptions:hostname           SOAP-ENV:mustUnderstand="1"          value="hostName"/>
    
</SOAP-ENV:Header>

Die sqloptions:hostName-Anmeldeoption wird als SOAP-Header verwendet. Der Header besteht aus einem Element namens sqloptions:hostName. Dieses Element besitzt ein obligatorisches Attribut, value, einen Textwert. Dieses gibt den host name an, der für die Anmeldung festgelegt wird. Der Name wird in der hostname-Spalte in der sys.sysprocesses-Kompatibilitätssicht angezeigt.

In einer Anforderung kann jeweils nur eine Instanz der sqloptions:hostName-Option vorkommen. Die Option darf nicht in einer Antwort verwendet werden. Mehrere Instanzen der Option generieren einen Fehler.

Der Server schränkt den Bereich der erkannten Werte des sqloptions:hostName-Wertes möglicherweise ein. Wenn ein Client einen Wert außerhalb eines zulässigen Bereichs übermittelt, schneidet der Server den Wert einfach auf nicht definierte Weise ab.

Wenn SOAP-Sitzungen verwendet werden, muss diese Option in der gleichen Anforderung wie das sqloptions:sqlsession initiate-Attribut verwendet werden. Wenn diese Option in einer Anforderung mit einem sqloptions:sqlSession-Header verwendet wird, die nicht außerdem das initiate-Attribut enthält, wird ein Fehler generiert.

Das folgende Beispiel ist ein Schemafragment für die sqloptions:hostName-Option:

<xs:element name="hostName" form="qualified">
    <xs:annotation>
        <xs:documentation>
            Set the host name for the login.
        </xs:documentation>
    </xs:annotation>
    <xs:complexType>
        <xs:attribute use="required" name="value" type="xs:string" form="unqualified">
            <xs:annotation>
                <xs:documentation>
                    The host name to set for the login.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
</xs:element>

Beispiele

Die folgenden Beispiele zeigen die Verwendung des sqloptions:hostname-Headers in SOAP-Anforderungs- und -Antwortnachrichten.

Anforderung

<SOAP-ENV:Envelope xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
                   xmlns:sql="https://schemas.microsoft.com/sqlserver/2004/SOAP"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xmlns:sqlparam="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlParameter"
                   xmlns:sqlsoaptypes="https://schemas.microsoft.com/sqlserver/2004/SOAP/types"
                   xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
  <SOAP-ENV:Header>
    <sqloptions:hostName SOAP-ENV:mustUnderstand="1" value="recep35" />
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
    <sql:sqlbatch>
      <sql:BatchCommands>
        SELECT hostname FROM sysprocesses 
        WHERE spid=@@spid AND hostName='recep35'
      </sql:BatchCommands>
    </sql:sqlbatch>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Antwort

<SOAP-ENV:Envelope xml:space="preserve" 
                   xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                   xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/" 
                   xmlns:sql="https://schemas.microsoft.com/sqlserver/2004/SOAP" 
                   xmlns:sqlsoaptypes="https://schemas.microsoft.com/sqlserver/2004/SOAP/types" 
                   xmlns:sqlrowcount="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlRowCount" 
                   xmlns:sqlmessage="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlMessage" 
                   xmlns:sqlresultstream="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlResultStream" 
                   xmlns:sqltransaction="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlTransaction" 
                   xmlns:sqltypes="https://schemas.microsoft.com/sqlserver/2004/sqltypes">
  <SOAP-ENV:Body>
    <sql:sqlbatchResponse>
      <sql:sqlbatchResult>
        <sqlresultstream:SqlRowSet xsi:type="sqlsoaptypes:SqlRowSet">
          <diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
            <SqlRowSet1 xmlns="urn:schemas-microsoft-com:sql:SqlRowSet1">
              <row>
                <hostname>recep35</hostname>
              </row>
            </SqlRowSet1>
          </diffgr:diffgram>
        </sqlresultstream:SqlRowSet>
        <sqlresultstream:SqlRowCount xsi:type="sqlrowcount:SqlRowCount">
          <sqlrowcount:Count>1</sqlrowcount:Count>
        </sqlresultstream:SqlRowCount>
      </sql:sqlbatchResult>
    </sql:sqlbatchResponse>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Siehe auch

Verweis