Élément d'en-tête sqloptions:applicationName
L'option de connexion sqloptions:applicationName permet au client de spécifier le nom de l'application utilisée pour la connexion, par exemple :
<SOAP-ENV:Header
xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
<SOAP-ENV:Header>
<sqloptions:applicationName SOAP-ENV:mustUnderstand="1" value="application name" />
</SOAP-ENV:Header>
<SOAP-ENV:Body>
</SOAP-ENV:Body>
</SOAP-ENV:Header>
L'option de connexion sqloptions:applicationName
apparaît sous la forme d'un en-tête SOAP, constitué d'un élément appelé sqloptions:applicationName
. L'élément possède un attribut obligatoire, value
, qui est une chaîne. L'attribut value
fournit le « nom de l'application » qui sera utilisée pour la connexion. Ce dernier apparaît dans la colonne program_name de la vue de compatibilité sys.sysprocesses.
Seule une instance de l'en-tête facultatif sqloptions:applicationName peut apparaître dans une demande SOAP unique. L'en-tête ne peut en aucun cas apparaître dans une réponse SOAP. Les instances multiples de cette option génèrent une erreur.
Le serveur peut limiter la plage des valeurs reconnues de l'option sqloptions:applicationName. Si un client envoie une valeur en dehors de la plage de valeurs autorisées, le serveur tronque discrètement la valeur de manière indéfinie.
En cas d'utilisation d'une session SOAP, cette option doit apparaître dans la même demande que celle utilisée pour l'initialisation de la session SOAP. Si l'option apparaît dans une demande associée à un en-tête sqloptions:sqlSession dépourvu de l'attribut initiate, une erreur est générée.
Voici un fragment de schéma concernant l'option sqloptions:applicationName
:
<xs:element name="applicationName" form="qualified">
<xs:annotation>
<xs:documentation>
Set the application 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 application name to set for the login.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Exemples
Les exemples suivants illustrent l'utilisation de l'en-tête sqloptions:applicationName
dans des messages de demande et de réponse SOAP.
Demande
<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:applicationName SOAP-ENV:mustUnderstand="1" value="HeadTrax" />
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<sql:sqlbatch>
<sql:BatchCommands>
SELECT DISTINCT program_name FROM sysprocesses
WHERE program_name='HeadTrax'
</sql:BatchCommands>
</sql:sqlbatch>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Réponse
<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>
<program_name>HeadTrax</program_name>
</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>