Autotranslation danych znakowych
Dane znakowe, takich jak ANSI znaków zmienne zadeklarowane za SQL_C_CHAR lub dane przechowywane w SQL Server za pomocą char, varchar, lub tekstu typów danych może reprezentować tylko ograniczoną liczbę znaków.Dane znakowe przechowywane za pomocą jeden bajt na znak może reprezentować tylko 256 znaków.Wartości przechowywane w zmiennych SQL_C_CHAR są interpretowane przy użyciu strona kodowa ANSI (AKP) z klient komputera.Wartości przechowywane za pomocą char, varchar, lub tekstu typów danych na serwerze są oceniane z zastosowaniem AKP serwera.
Jeśli serwer i klient tego samego AKP, a następnie mają one żadnych problemów w interpretacji wartości przechowywane w SQL_C_CHAR, char, varchar, lub tekstu obiektów.Jeśli serwer i klient różnych ACPs, a następnie SQL_C_CHAR dane od klienta może być interpretowany jako inny znak na serwerze, jeśli jest używany w char, varchar, lub tekstu kolumny, zmiennych i parametrów.Na przykład bajt znaków zawierającym wartość 0xA5 jest interpretowana jako znak ρ na komputerze przy użyciu kodu strony 437 i jest interpretowana jako jen japoński podpisania ¥ na komputerze z systemem 1252 strona kodowa.
Dane Unicode są przechowywane przy użyciu dwóch bajtów na znak.Wszystkie znaki rozszerzone są objęte specyfikacją standardu Unicode, więc wszystkie znaki Unicode są interpretowane tak samo dla wszystkich komputerów.
Funkcja AutoTranslate SQL Server sterownik ODBC macierzysty klient próbuje zminimalizować problemy w przenoszenie danych znakowych między klientem i serwerem, który ma inny kod strony.AutoTranslate zestaw w ciąg połączenia z SQLDriverConnect, w ciąg konfiguracja SQLConfigDataSource, lub podczas konfigurowania źródła danych dla SQL Server sterownik ODBC macierzystym klienta przy użyciu Administratora ODBC.
Gdy jest AutoTranslate zestaw "nie", nie konwersje są wykonywane na danych przenoszone między zmiennymi SQL_C_CHAR klient i char, varchar, lub tekstu kolumny, zmiennych i parametrów w SQL Server bazy danych.Desenie bitowe mogą być interpretowane inaczej na klient i komputery serwerów, jeżeli dane zawierają znaki rozszerzone i dwa komputery mają różne strony kodowe.Dane będą interpretowane takie same, jeśli oba komputery mają tej samej strona kodowa.
Po AutoTranslate zestaw na "tak", SQL Server sterownik ODBC macierzystym klient używa Unicode do konwersji danych przenoszone między zmiennymi SQL_C_CHAR klient i char, varchar, lub tekstu kolumny, zmiennych i parametrów w SQL Server bazy danych:
Kiedy dane są przesyłane z zmiennej SQL_C_CHAR klient char, varchar, lub tekstu kolumna, zmienna lub parametr w SQL Server bazy danych, sterownik ODBC najpierw konwertuje z SQL_C_CHAR Unicode przy użyciu AKP klient, następnie ze standardu Unicode na znaki przy użyciu AKP serwera.
Gdy dane są przesyłane z char, varchar, lub tekstu kolumna, zmienna lub parametr w SQL Server bazy danych do zmiennej SQL_C_CHAR klient, sterownik ODBC macierzystym klientSQL Server najpierw konwertuje od znaku Unicode przy użyciu AKP serwera, następnie ze standardu Unicode na SQL_C_CHAR przy użyciu AKP klient.
Ponieważ wszystkie konwersje te są wykonywane SQL Server Wykonywanie sterownik ODBC macierzystym klient klient, serwerze AKP musi być jedną z stron kodowych, zainstalowane na komputerze klienckim.
Dokonywania konwersji znaków Unicode za pomocą zapewnia prawidłowe konwersję wszystkich znaków, które istnieją w obu stron kodowych.Jeśli istnieje jeden znak strona kodowa ale nie inna, a następnie znak nie może być reprezentowana w miejsce docelowe strony kodowej.Na przykład strona kodowa 1252 został zastrzeżony znak towarowy (®), a nie strony kodowej 437.
Ustawienie AutoTranslate nie ma wpływu na te konwersje:
Przenoszenie danych między znakami SQL_C_CHAR klient zmiennych i Unicode nchar, nvarchar, lub ntext kolumny, zmiennych i parametrów w SQL Server baz danych.
Przenoszenie danych między Unicode SQL_C_WCHAR klient zmiennych i znakiem char, varchar, lub tekstu kolumny, zmiennych i parametrów w SQL Server baz danych.
Danych zawsze należy przekonwertować po przeniesieniu się od znaku Unicode.