Autotranslation danych znaków
Znak dane, takie jak zmienne znak ANSI zadeklarowana z SQL_C_CHAR lub dane przechowywane w SQL Server za pomocą CHAR, varchar, or tekst typy danych, może reprezentować tylko ograniczoną liczbę znaków.Dane znakowe przechowywane przy użyciu 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) na komputerze klienckim.Wartości przechowywane przy użyciu CHAR, varchar, or tekst typów danych na serwerze są obliczane przy użyciu AKP serwera.
Jeśli serwera i klient mają ten sam AKP, następnie mają one błędów w interpretacji wartości przechowywane w SQL_C_CHAR, CHAR, varchar, or tekst obiektów.Jeżeli serwer i klient mają różne ACPs, następnie SQL_C_CHAR od klienta może być interpretowana jako inny znak na serwerze, jeśli jest ono używane w CHAR, varchar, or tekst kolumn, zmiennych lub parametrów.Na przykład zawierające wartości 0xA5 bajt znaku jest interpretowana jako znak Ñ na komputerze przy użyciu kodu strony 437 i jest interpretowana jako jena podpisania (y) na komputerze z systemem 1252 strona kodowa.
Dane w standardzie Unicode są przechowywane przy użyciu dwóch bajtów na znak.Wszystkie znaki rozszerzone są objęte Specyfikacja standardu Unicode, dzięki czemu wszystkie znaki Unicode są interpretowane tak samo na wszystkich komputerach.
Funkcja AutoTranslate SQL Server Macierzysty sterownik ODBC klient próbuje zminimalizować problemy w przenoszenie danych znakowych między klientem a serwerem, które mają różne strony kodowe. AutoTranslate zestaw w ciąg połączenia SQLDriverConnect, w ciąg konfiguracja SQLConfigDataSource, lub podczas konfigurowania źródła danych dla SQL Server Macierzysty sterownik ODBC klient przy użyciu Administratora ODBC.
Gdy jest AutoTranslate zestaw do "nie", są wykonywane nie konwersje na danych, przenoszona między zmiennymi SQL_C_CHAR klient i CHAR, varchar, or tekst kolumn, zmiennych lub parametrów w SQL Server Baza danych. Desenie bitowe mogą być interpretowane inaczej na komputerach klienckich i serwerowych Jeśli 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.
Gdy jest AutoTranslate zestaw do "tak" SQL Server Macierzysty sterownik ODBC klient używa standardu Unicode do konwertowania danych, przenoszona między zmiennymi SQL_C_CHAR na kliencie i CHAR, varchar, or tekst kolumn, zmiennych lub parametrów w SQL Server Baza danych:
Gdy dane są przesyłane z zmienną SQL_C_CHAR klient CHAR, varchar, or tekst kolumna, zmiennej lub parametru w SQL Server Baza danych, sterownik ODBC najpierw konwertuje z SQL_C_CHAR Unicode przy użyciu AKP klient, a następnie ze standardu Unicode na znaki przy użyciu AKP serwera.
Gdy dane są przesyłane z CHAR, varchar, or tekst kolumna, zmiennej lub parametru w SQL Server bazy danych do zmiennej SQL_C_CHAR klient, SQL Server Macierzysty sterownik ODBC klient najpierw konwertuje od znaku Unicode przy użyciu AKP na serwerze, a następnie ze standardu Unicode do SQL_C_CHAR przy użyciu AKP klient.
Ponieważ wszystkie konwersje te są wykonywane SQL Server Macierzysta klient ODBC sterownika wykonywanie klient, serwerze AKP musi to być jedna z stron kodowych, zainstalowane na komputerze klienckim.
Dzięki konwersji znaków Unicode za pomocą zapewnia prawidłowego konwersji wszystkich znaków, które istnieją w obu stron kodowych.Jeśli w jednym znakiem strona kodowa ale nie inna, a następnie znak nie może być przedstawiona w miejsce docelowe strony kodowej.Na przykład strona kodowa 1252 zawiera symbol zarejestrowanego znaku towarowego (®), a nie strony kodowej 437.
Ustawienie AutoTranslate nie ma wpływu na te konwersje:
Przenoszenie danych między zmiennymi klient SQL_C_CHAR znaku a Unicode nchar, nvarchar, or ntext kolumn, zmiennych lub parametrów w SQL Server bazy danych.
Przenoszenie danych między zmiennymi klient SQL_C_WCHAR Unicode, a znak CHAR, varchar, or tekst kolumn, zmiennych lub parametrów w SQL Server bazy danych.
Danych zawsze należy przekonwertować po przeniesieniu się od znaku Unicode.