Funzionalità internazionali del driver JDBC
Tra le funzionalità internazionali del driver JDBC per Microsoft SQL Server sono incluse le seguenti:
Supporto di un'interfaccia completamente localizzata nelle stesse lingue di SQL Server.
Supporto delle conversioni di linguaggio Java di dati di SQL Server dipendenti dalle impostazioni locali.
Supporto di lingue internazionali, indipendentemente dal sistema operativo.
Gestione dei dati di tipo carattere
I dati di tipo carattere in Java vengono gestiti come Unicode per impostazione predefinita. L'oggetto Java String rappresenta dati di tipo carattere Unicode. Nel driver JDBC l'unica eccezione a questa regola è costituita dai metodi per il richiamo e l'impostazione dei flussi ASCII, che rappresentano casi speciali poiché utilizzano flussi di byte con il presupposto implicito di singole tabelle codici conosciute (ASCII).
Il driver JDBC fornisce inoltre la proprietà della stringa di connessione sendStringParametersAsUnicode, che può essere utilizzata per specificare che i parametri preparati per i dati di tipo carattere verranno inviati in formato ASCII or MBCS (Multi-byte Character Set) anziché Unicode. Per ulteriori informazioni sulla proprietà della stringa di connessione sendStringParametersAsUnicode, vedere Impostazione delle proprietà delle connessioni.
Conversioni in ingresso nel driver
I dati di tipo text Unicode provenienti dal server non devono essere convertiti. Vengono passati direttamente in formato Unicode. I dati non Unicode provenienti dal server vengono convertiti dalla tabella codici, a livello di database o di colonna, a Unicode. Per eseguire queste conversioni vengono utilizzate le routine di conversione JVM (Java Virtual Machine). Le conversioni vengono eseguite su tutti metodi per il richiamo di flussi String e Character tipizzati.
Se in JVM non è disponibile il supporto di tabella codici appropriato per i dati del database, verrà generata un'eccezione "La tabella codici XXX non è supportata dall'ambiente Java". Per risolvere il problema, è necessario installare il supporto completo per caratteri internazionali richiesto per tale JVM. Per un esempio, vedere la documentazione relative alle codifiche supportate nel sito Web Sun Microsystems.
Conversioni in uscita dal driver
I dati di tipo carattere che passano dal driver al server possono essere ASCII o Unicode. Ad esempio, i nuovi metodi per caratteri nazionali di JDBC 4.0, ad esempio i metodi setNString, setNCharacterStream e setNClob delle classi SQLServerPreparedStatement e SQLServerCallableStatement, inviano sempre i valori dei parametri al server in formato Unicode.
D'altro canto, i metodi dell'API per caratteri non nazionali, ad esempio i metodi setString, setCharacterStream e setClob delle classi SQLServerPreparedStatement e SQLServerCallableStatement inviano i valori al server in formato Unicode solo quando la proprietà sendStringParametersAsUnicode è impostata su "true", che corrisponde al valore predefinito.
Parametri non Unicode
Per prestazioni ottimali con il tipo di parametri non Unicode CHAR, VARCHAR or LONGVARCHAR, impostare la proprietà della stringa di connessione sendStringParametersAsUnicode su "false" e utilizzare i metodi per caratteri non nazionali.
Problemi di formattazione
Per la data, l'ora e le valute, tutte le operazioni di formattazione con i dati localizzati vengono eseguite a livello di linguaggio Java utilizzando l'oggetto Locale e i diversi metodi di formattazione per i tipi di dati Date, Calendar e Number. Nei rari casi in cui il driver JDBC deve passare dati dipendenti dalle impostazioni locali in un formato localizzato, viene utilizzato il formattatore appropriato con le impostazioni locali JVM predefinite.
Supporto delle regole di confronto
Nelle versioni precedenti, 1.0, 1.1 e 1.2, del driver JDBC per Microsoft SQL Server sono supportate tutte le regole di confronto supportate in SQL Server 2000 e SQL Server 2005.
Nel driver JDBC versione 2.0 sono supportate tutte le regole di confronto supportate da SQL Server 2000, SQL Server 2005, nonché le nuove regole di confronto o le nuove versioni dei nomi di regole di confronto Windows introdotte in SQL Server 2008.
Per ulteriori informazioni sulle regole di confronto, vedere Regole di confronto e supporto Unicode e Windows_collation_name (Transact-SQL) nella documentazione in linea di SQL Server 2008.