Internationale Funktionen des JDBC-Treibers

JDBC-Treiber herunterladen

Die Internationalisierungsfunktionen von Microsoft JDBC-Treiber für SQL Server umfassen Folgendes:

  • Unterstützung einer vollständigen Lokalisierung in den gleichen Sprachen wie SQL Server
  • Unterstützung für Java-Sprachumwandlungen für gebietsschemasensitive SQL Server-Daten
  • Betriebssystemunabhängige Unterstützung internationaler Sprachen
  • Unterstützung für internationale Domänennamen (beginnend mit Microsoft JDBC-Treiber 6.0 für SQL Server)

Verarbeitung von Zeichendaten

Zeichendaten in Java werden standardmäßig als Unicode-Daten verarbeitet; das Java-Objekt String stellt Unicode-Zeichendaten dar. Die einzige Ausnahme dieser Regel im JDBC-Treiber bilden die Abruf- und Festlegungsmethoden für ASCII-Datenströme. Dabei handelt es sich um Sonderfälle, da Bytedatenströme mit der impliziten Voraussetzung einer einzelnen bekannten Codepage (ASCII) verwendet werden.

Darüber hinaus stellt der JDBC-Treiber die -Verbindungszeichenfolgeneigenschaft sendStringParametersAsUnicode bereit. Mit dieser Eigenschaft kann angegeben werden, dass die vorbereiteten Parameter für Zeichendaten anstatt in Unicode in ASCII oder als Multibyte-Zeichensatz (MBCS) gesendet werden. Weitere Informationen zur Verbindungszeichenfolgeneigenschaft sendStringParametersAsUnicode finden Sie unter Festlegen von Verbindungseigenschaften.

Konvertierung eingehender Daten

Unicode-Textdaten vom Server brauchen nicht konvertiert zu werden. Sie werden direkt als Unicode-Daten übergeben. Nicht-Unicode-Daten vom Server werden von der Codepage für die Daten auf Datenbank- oder Spaltenebene in Unicode konvertiert. Der JDBC-Treiber verwendet die JVM-Konvertierungsroutinen (Java Virtual Machine) für diese Konvertierungen. Diese Konvertierungen werden in allen Abrufmethoden für typisierte Zeichenfolgen- und Zeichendatenströme ausgeführt.

Wenn die JVM nicht die richtige Codepage für die Daten aus der Datenbank unterstützt, löst der JDBC-Treiber die Ausnahme „Codepage XXX wird von der Java-Umgebung nicht unterstützt“ aus. Zum Beheben dieses Problems sollten Sie die vollständige Unterstützung für internationale Zeichensätze installieren, die für diese JVM erforderlich ist.

Konvertierung ausgehender Daten

Zeichendaten vom Treiber zum Server können als ASCII oder Unicode übertragen werden. Die neuen JDBC 4.0-Methoden für nationale Zeichensätze wie „setNString“, „setNCharacterStream“ und „setNClob“ der Klassen SQLServerPreparedStatement und SQLServerCallableStatement senden ihre Parameterwerte immer im Unicode-Format an den Server.

Die API-Methoden für nicht nationale Zeichensätze wie „setString“, „setCharacterStream“ und „setClob“ der Klassen SQLServerPreparedStatement und SQLServerCallableStatement senden ihre Werte hingegen nur im Unicode-Format an den Server, wenn die Eigenschaft sendStringParametersAsUnicode auf TRUE festgelegt ist, was dem Standardwert entspricht.

Nicht-Unicode-Parameter

Um bei Verwendung der folgenden Typen von Nicht-Unicode-Parametern eine optimale Leistung zu erhalten, legen Sie diesendStringParametersAsUnicode-Verbindungszeichenfolgeneigenschaft auf FALSE fest und verwenden die Methoden für nicht nationale Zeichen: CHAR, VARCHAR oder LONGVARCHAR.

Formatierungsprobleme

Bei Datums-, Uhrzeit- und Währungsangaben erfolgt die gesamte Formatierung mit lokalisierten Daten mit dem Locale-Objekt und den verschiedenen Formatierungsmethoden für die Datentypen Date, Calendar und Number auf Java-Ebene. In den seltenen Fällen, in denen der JDBC-Treiber gebietsschemasensitive Daten in einem lokalisierten Format übergeben muss, wird die entsprechende Formatierungsmethode mit dem JVM-Standardgebietsschema verwendet.

Unterstützung für Sortierungen

Der JDBC-Treiber 3.0 unterstützt alle Sortierungen, die von SQL Server 2000 (8.x), SQL Server 2005 (9.x) und den in SQL Server 2008 (10.0.x) eingeführten neuen Sortierungen bzw. neuen Versionen der Windows-Sortierungsnamen unterstützt werden.

Weitere Informationen zu Sortierungen finden Sie unter Unterstützung von Sortierungen und Unicode und Name der Windows-Sortierung (Transact-SQL).

Verwendung internationaler Domänennamen (IDN)

Der JDBC-Treiber 6.0 für SQL Server unterstützt die Verwendung internationaler Domänennamen (IDNs) und kann bei Bedarf während einer Verbindung einen Unicode-Servernamen in ASCII-kompatible Codierung (Punycode) konvertieren. Wenn die IDNs im Domain Name System (DNS) als ASCII-Zeichenfolgen im Punycode-Format (angegeben durch RFC 3490) gespeichert sind, aktivieren Sie die Konvertierung der Unicode-ServerName, indem Sie die ServerNameAsACE-Eigenschaft auf „true“ setzen. Wenn der DNS-Dienst für die Verwendung von Unicode-Zeichen konfiguriert ist, setzen Sie die ServerNameAsACE-Eigenschaft auf „false“ (Standard). Bei älteren Versionen des JDBC-Treibers können Sie den Servernamen in Punycode konvertieren, indem Sie die IDN.toASCII-Methoden von Java verwenden, bevor Sie die Eigenschaft für eine Verbindung festlegen.

Hinweis

Der Großteil der für Windows-Plattformen geschriebenen Konfliktlösersoftware basiert auf den Internet-DSN-Standards und verwendet aus diesem Grund mit hoher Wahrscheinlichkeit das Punycode-Format für IDN. Ein Windows-basierter DNS-Server in einem privaten Netzwerk kann hingegen so konfiguriert werden, dass die Verwendung von UTF-8-Zeichen auf Serverbasis möglich ist. Weitere Informationen finden Sie unter Unterstützung für Unicode-Zeichen.

Weitere Informationen

Übersicht über den JDBC-Treiber