602SQL-Úplná dokumentace Index  

Rozlišení jazyka a kódování u znakových řetězců

K popisu typu znakový řetězec a CLOB lze připojit informaci o jazyce a kódování. Ta může mít různé funkce:

Jazyk a kódování se specifikuje takto:

jazyk_a_kódování ::= COLLATE jméno_jazyka [ IGNORE_CASE ]

Není-li jazyk_a_kódování u řetězce uvedeno (nebo jméno_jazyka je ANSI), pak se předpokládá, že řetězec obsahuje pouze ASCII znaky. Ty se třídí podle latinské abecedy. Obsahuje-li řetězec jiné než ASCII znaky, třídí se podle jejich kódu.

Pro národní abecedy může být podstatným údajem i kódová stránka. Windows aplikace standardně používají pro 8 bitová kódování stránky Windows cp1250 (Východní Evropa) a Windows cp1252 (Západní Evropa). Pokud klient zapisuje znaky (řetězce nebo texty) v jiném kódování (může nastat např. při vkládání z browseru, který má nastaven CHARSET=ISO-8859-2), musí server být schopen s těmito daty pracovat (porovnávat, měnit velikost a třídit). Toho se docílí zvolením kódové stránky toho sloupce tabulky, do něhož se zapisuje.

Pro plné využití ISO kódování (včetně národního třídění) musí být Windows server spuštěn na Windows od verze 2000.

Je-li uvedeno IGNORE_CASE, pak se při třídění nerozlišuje mezi velkými a malými písmeny. To vyžaduje správné určení jazyka a kódové stránky, aby bylo možno určit, které znaky jsou písmeny a které tvoří dvojice velké-malé písmeno.

Množina dostupných jazyků se může s verzemi 602SQL rozšiřovat. Pro kompatibilitu se staršími verzemi lze jako jméno_jazyka používat slova CSSTRING a CSISTRING.

Jméno jazyka Jazyk Kódová stránka Script fontů Windows Kód charsetu
ANSI Angličtina ASCII - libovolný - 0
CSString, CSIString Čeština/Slovenština windows cp1250 středoevropský 1
CZ, SK, CZ_WIN, SK_WIN Čeština/Slovenština windows cp1250 středoevropský 1
CZ_ISO, SK_ISO Čeština/Slovenština iso-8859-2 středoevropský 129
PL, PL_WIN Polština windows cp1250 středoevropský 2
PL_ISO Polština iso-8859-2 středoevropský 130
FR, FR_WIN Francouzština windows cp1252 západoevropský 3
FR_ISO Francouzština iso-8859-1 západoevropský 131
DE, DE_WIN Němčina windows cp1252 západoevropský 4
DE_ISO Němčina iso-8859-1 západoevropský 132
IT, IT_WIN Italština windows cp1252 západoevropský 5
IT_ISO Italština iso-8859-1 západoevropský 133

Při úpravách tabulky pomocí návrháře tabulek se pro české (slovenské) kódování používají stále konstanty CSSTRING a CSISTRING.

Zde diskutované kódování řetězců v tabulkách může být odlišné od systémového jazyka databáze (tabulka kódů je však shodná).