Internationale Funktionen des JDBC-Treibers

 

HerunterladenJDBC-Treiber herunterladen

Der Microsoft JDBC-Treiber für SQL Server bietet folgende Internationalisierungsfunktionen:

  • Unterstützung einer vollständigen Lokalisierung in den gleichen Sprachen wie SQL Server

  • Unterstützung für die Javasprachkonvertierungen für vertrauliche Gebietsschema 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)

Zeichendaten in Java werden standardmäßig als Unicode-Daten verarbeitet; das JavaString-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 umfasst der JDBC-Treiber die sendStringParametersAsUnicode-Verbindungszeichenfolgeeigenschaft. 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 zum Angeben der sendStringParametersAsUnicode Verbindungszeichenfolge finden Sie unter Einstellen der 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 Zeichenfolge- 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. Ein Beispiel finden Sie auf der Sun Microsystems-Website in der Dokumentation zu unterstützten Codierungen.

Konvertierung ausgehender Daten

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

Die API-Methoden für nicht nationale Zeichensätze wie setString, setCharacterStream und setClob der SQLServerPreparedStatement-Klasse und der SQLServerCallableStatement-Klasse senden ihre Parameterwerte hingegen nur dann im Unicode-Format an den Server, wenn die sendStringParametersAsUnicode-Eigenschaft auf „true“ (der Standardwert) festgelegt ist.

Um bei Verwendung der Typen von Nicht-Unicode-Parametern CHAR, VARCHAR und LONGVARCHAR eine optimale Leistung zu erhalten, legen Sie die sendStringParametersAsUnicode-Verbindungszeichenfolgeneigenschaft auf „false“ fest und verwenden die Methoden für nicht nationale Zeichensätze.

Bei Datums-, Uhrzeit- und Währungsangaben erfolgt die gesamte Formatierung mit lokalisierten Daten mit dem Locale-Objekt und den verschiedenen Formatierungsmethoden für Date, Calendar und Number-Datentypen 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.

JDBC Driver 3.0 unterstützt alle Sortierungen, die von SQL Server 2000, SQL Server 2005 und den neuen Sortierungen oder neuen Versionen der Windows-Sortierungsnamen, die in SQL Server 2008 eingeführt wurden, unterstützt werden.

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

Der JDBC-Treiber 6.0 (Vorschau) für SQL Server unterstützt die Verwendung internationaler Domänennamen (IDNs) und kann bei Bedarf während einer Verbindung einen Unicode-ServerName 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). Mit älteren Versionen des JDBC-Treibers lässt sich der ServerName in Punycode umwandeln, indem die Java’s IDN.toASCII-Methode vor dem Festlegen dieser Verbindungseigenschaft angewendet wird.

System_CAPS_ICON_note.jpg 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 von Unicode-Zeichen.

Übersicht über den JDBC-Treiber

Community-Beiträge

HINZUFÜGEN
Anzeigen: