Partager via


Pilotes Unicode

Si un pilote doit être un pilote Unicode ou un pilote ANSI dépend entièrement de la nature de la source de données. Si la source de données prend en charge les données Unicode, le pilote doit être un pilote Unicode. Si la source de données prend uniquement en charge les données ANSI, le pilote doit rester un pilote ANSI.

Un pilote Unicode doit exporter SQL Connecter W pour être reconnu comme pilote Unicode par le Gestionnaire de pilotes.

Un pilote Unicode doit accepter des fonctions Unicode (avec un suffixe de W) et stocker des données Unicode. Il peut également accepter les fonctions ANSI, mais n’est pas nécessaire. (Le Gestionnaire de pilotes ne passe pas d’appel de fonction ANSI avec le Suffixe au pilote, mais le convertit en appel de fonction ANSI sans le suffixe, puis le transmet au pilote.)

Un pilote Unicode doit être en mesure de retourner des jeux de résultats dans Unicode ou ANSI, en fonction de la liaison de l’application. Si une application est liée à SQL_C_CHAR, le pilote Unicode doit convertir SQL_WCHAR données en SQL_CHAR. Le gestionnaire de pilotes mappe SQL_C_WCHAR à SQL_C_CHAR pour les pilotes ANSI, mais n’effectue aucun mappage pour les pilotes Unicode.

Remarque

Lors de la détermination du type de pilote, le Gestionnaire de pilotes appelle SQLSet Connecter Attr et définit l’attribut SQL_ATTR_ANSI_APP au moment de la connexion. Si l’application utilise des API ANSI, SQL_ATTR_ANSI_APP est définie sur SQL_AA_TRUE et, si elle utilise Unicode, elle est définie sur une valeur de SQL_AA_FALSE. Cet attribut est utilisé pour que le pilote puisse présenter un comportement différent en fonction du type d’application. L’attribut ne peut pas être défini directement par l’application et il n’est pas pris en charge par SQLGet Connecter Attr. Si un pilote présente le même comportement pour les applications ANSI et Unicode, il doit retourner SQL_ERROR pour cet attribut. Si le pilote retourne SQL_SUCCESS, le Gestionnaire de pilotes sépare les connexions ANSI et Unicode lorsque Connecter pool d’Connecter ion est utilisé.