Conséquences des options ISO
Le standard ODBC est étroitement mis en correspondance avec la norme ISO, et les applications ODBC attendent un comportement standard d'un pilote ODBC. Pour que ce comportement se conforme plus étroitement avec celui défini dans le standard ODBC, le pilote ODBC SQL Server Native Client utilise toujours les options ISO disponibles dans la version de SQL Server à laquelle il se connecte.
Lorsque le pilote ODBC SQL Server Native Client se connecte à une instance de SQL Server, le serveur détecte que le client utilise le pilote ODBC SQL Server Native Client et définit alors plusieurs options.
Le pilote émet ces instructions lui-même ; l'application ODBC n'émet aucune demande. La définition de ces options permet aux applications ODBC utilisant le pilote d'être plus portables parce que le comportement du serveur correspond alors à la norme ISO.
Les applications basées sur DB-Library n'activent généralement pas ces options. Les sites qui observent une différence de comportement entre les clients ODBC ou DB-Library lors de l'exécution de la même instruction SQL ne doivent pas en déduire qu'il s'agit d'un problème avec le pilote ODBC SQL Server Native Client. Ils doivent d'abord réexécuter l'instruction dans l'environnement DB-Library avec les mêmes options SET que celles qui seraient utilisées par le pilote ODBC SQL Server Native Client.
Comme les options SET peuvent être activées et désactivées à tout moment par les utilisateurs et les applications, les développeurs de procédures stockées et de déclencheurs doivent aussi veiller à tester leurs procédures et leurs déclencheurs avec les options SET répertoriées ci-dessus activées et désactivées. Cela garantit que les procédures et les déclencheurs fonctionnent correctement, quelles que soient les options activées d'une connexion donnée lors de l'appel du déclencheur. Les déclencheurs ou les procédures stockées qui requièrent un paramètre particulier pour l'une de ces options doivent émettre une instruction SET au démarrage du déclencheur ou de la procédure stockée. Cette instruction SET n'est active que pour l'exécution du déclencheur ou de la procédure stockée ; à la fin de la procédure ou du déclencheur, la configuration d'origine est restaurée.
En cas de connexion à une instance de SQL Server, une quatrième option SET, CONCAT_NULL_YIELDS_NULL, est également activée. Le pilote ODBC SQL Server Native Client n'active pas ces options si AnsiNPW=NO est spécifié dans la source de données ou sur SQLDriverConnect ou SQLBrowseConnect.
Comme les options ISO notées précédemment, le pilote ODBC SQL Server Native Client n'active pas l'option QUOTED_IDENTIFIER si QuotedID=NO est spécifié dans la source de données ou sur SQLDriverConnect ou SQLBrowseConnect.
Pour permettre au pilote de connaître l'état actuel des options SET, les applications ODBC ne doivent pas utiliser l'instruction Transact-SQL SET pour définir ces options. Elles doivent uniquement définir ces options à l'aide de la source de données ou des options de connexion. Si l'application émet des instructions SET, le pilote peut générer des instructions SQL inexactes.