Fonctionnalités internationales du pilote JDBC

 

TéléchargerTélécharger le pilote JDBC

Le Pilote Microsoft JDBC pour SQL Server offre les fonctionnalités d’internationalisation suivantes :

  • Prise en charge d’une expérience entièrement localisée dans les mêmes langues que SQL Server

  • Prise en charge des conversions de langage Java pour les données SQL Server sensibles aux paramètres régionaux

  • Prise en charge des langues internationales, quel que soit le système d’exploitation

  • Prise en charge des noms de domaine internationaux (à compter du pilote Microsoft JDBC 6.0 pour SQL Server)

Les données caractères dans Java sont gérées comme des données Unicode par défaut. L’objet String Java représente des données caractères Unicode. Dans le pilote JDBC, la seule exception à cette règle concerne les méthodes getter et setter de flux ASCII, qui sont des cas spéciaux car elles utilisent des flux d’octets avec l’hypothèse implicite de pages de code connues uniques (ASCII).

De plus, le pilote JDBC fournit la propriété de chaîne de connexion sendStringParametersAsUnicode. Vous pouvez utiliser cette propriété pour faire en sorte que les paramètres préparés pour les données caractères soient envoyés au format ASCII ou MBCS (Multi-byte Character Set) plutôt qu’Unicode. Pour plus d’informations sur la propriété de chaîne de connexion sendStringParametersAsUnicode, consultez Définition des propriétés de connexion.

Conversions entrantes du pilote

Vous n’êtes pas obligé de convertir les données de type texte Unicode provenant du serveur. Ces données sont transmises directement au format Unicode. Les données non-Unicode provenant du serveur sont converties à partir de la page de codes pour les données, au niveau de la base de données ou de la colonne, vers le format Unicode. Le pilote JDBC utilise les routines de conversion JVM (Java Virtual Machine) pour effectuer ces conversions. Elles sont effectuées sur toutes les méthodes getter typées des flux de type String et Character.

Si la machine virtuelle Java n’offre pas la prise en charge de page de codes appropriée pour les données de la base de données, le pilote JDBC lève une exception « La page de codes XXX n’est pas prise en charge par l’environnement Java ». Pour résoudre ce problème, vous devez installer la prise en charge complète des caractères internationaux nécessaire pour cette machine virtuelle Java. Pour obtenir un exemple, consultez la documentation des codages pris en charge sur le site web de Sun Microsystems.

Conversions sortantes du pilote

Les données caractères allant du pilote au serveur peuvent être au format ASCII ou Unicode. Par exemple, les nouvelles méthodes JDBC 4.0 prenant en charge les caractères nationaux, telles que les méthodes setNString, setNCharacterStream et setNClob des classes SQLServerPreparedStatement et SQLServerCallableStatement, envoient toujours leurs valeurs de paramètres au serveur au format Unicode.

En revanche, les méthodes d’API ne prenant pas en charge les caractères nationaux, telles que les méthodes setString, setCharacterStream et setClob des classes SQLServerPreparedStatement et SQLServerCallableStatement, envoient toujours leurs valeurs au serveur au format Unicode uniquement quand la propriété sendStringParametersAsUnicode a la valeur « true », qui est la valeur par défaut.

Pour des performances optimales avec le type CHAR, VARCHAR ou LONGVARCHAR des paramètres non-Unicode, affectez la valeur « false » à la propriété de chaîne de connexion sendStringParametersAsUnicode et utilisez les méthodes basées sur des caractères non nationaux.

Pour les dates, les heures et les devises, toute mise en forme des données localisées est effectuée au niveau du langage Java, à l’aide de l’objet Locale et des diverses méthodes de mise en forme pour les types de données Date, Calendar et Number. Dans les rares cas où le pilote JDBC doit passer des données sensibles aux paramètres régionaux dans un format localisé, le programme approprié de mise en forme est utilisé avec les paramètres régionaux par défaut de la machine virtuelle Java.

Le pilote JDBC 3.0 prend en charge tous les classements pris en charge par SQL Server 2000 et SQL Server 2005, ainsi que les nouveaux classements ou les nouvelles versions des noms de classements Windows introduits dans SQL Server 2008.

Pour plus d’informations sur les classements, consultez Prise en charge d’Unicode et du classement et Nom de classement Windows (Transact-SQL) dans la documentation en ligne de SQL Server.

Le pilote JDBC 6.0 (Preview) pour SQL Server prend en charge l’utilisation de noms de domaine internationaux et peut convertir un nom de serveur Unicode en codage compatible avec le format ASCII (Punycode) en cas de besoin pendant une connexion. Si les noms de domaines internationaux sont stockés dans le système DNS (Domain Name System) en tant que chaînes ASCII au format Punycode (spécifié par la RFC 3490), activez la conversion du nom de serveur Unicode en affectant la valeur « True » à la propriété serverNameAsACE. Sinon, si le service DNS est configuré pour autoriser l’utilisation de caractères Unicode, affectez la valeur « false » (valeur par défaut) à la propriété serverNameAsACE. Pour les versions antérieures du pilote JDBC, vous pouvez aussi convertir le nom du serveur au format Punycode à l’aide des méthodes IDN.toASCII de Java avant de définir cette propriété pour une connexion.

System_CAPS_ICON_note.jpg Remarque


La plupart des logiciels de résolution écrits pour les plateformes autres que Windows sont basés sur les normes DSN Internet. Il est donc plus probable qu’ils utilisent le format Punycode pour les noms de domaines internationaux, alors qu’un serveur DNS Windows sur un réseau privé peut être configuré pour autoriser l’utilisation des caractères UTF-8 en fonction du serveur. Pour plus d’informations, consultez Prise en charge des caractères Unicode.

Vue d’ensemble du pilote JDBC

Ajouts de la communauté

AJOUTER
Afficher: