602SQL-Úplná dokumentace Index  

Systémový jazyk a znaková sada

Při vytváření nového lokálního serveru (resp. databáze pro lokální server) je jednou z požadovaných informací Systémový jazyk a sada znaků. Z nabídky vyberte jazyk a sadu znaků (kódovou stránku), který bude server používat pro svá interní třídění, porovnávání, převádění z malých písmen na velká a podobné operace s identifikátory.

Volba národního jazyka a sady znaků je důležitá, pokud používáte národní znaky v identifikátorech (jména objektů, názvy proměnných apod.). Volba sady znaků (pro jazyky s koncovkou Win je to Win CP1250 pro češtinu, slovenštinu a polštinu resp. CP1252 pro západní jazyky; pro jazyky s koncovkou ISO je to ISO-8859-2 pro češtinu, slovenštinu a polštinu resp. ISO-8859-1 pro západní jazyky) je podstatná pro použitý operační systém (na Linuxu nepoužívejte win charsety, na Windows9x nepoužívejte iso charset). Pro angličtinu je použita sada znaků ASCII - v tomto případě server nepovolí použití žádné diakritiky v identifikátorech. Jiné než 8-bitové kódování nelze použít.

Ve zvoleném kódování SQL server očekává SQL příkazy.

Ve zvoleném kódování se očekávají řetězcové vstupní proměnné API funkcí, např. Find_object

Volba systémového jazyka nesouvisí s volbou jazyka u dat v tabulkách - i v ASCII databázi mohou být řetězcová data včetně diakritiky (ale jména sloupců diakritiku obsahovat nemohou).

Při exportu objektů do souborů se jejich definice převádějí do formátu UTF-8 a při importu do zvoleného 8-bitového kódování databáze (případně i odlišného od kódování databáze, z níž bylo exportováno). Import objektů s diakritikou do ASCII databáze se nezdaří a skončí chybou.

Jednou zvolený systémový jazyk již nejde změnit.

Do verze 8.1 včetně byl systémový jazyk a kódování čeština ve Windows-1250.

Linux a locale

Pokud na Linuxu nelze zvolit požadovaný charset, např. ISO-8859-2 (dialog ho nenabízí), je možné příkazem localedef příslušné locale vytvořit

localedef -i cs_CZ -f ISO-8895-2 cs_CZ.ISO-8859-2
a poté zkontrolovat pomocí
locale -a

Program kontroluje přítomnost následujících locales: cs_CZ.ISO-8859-2, pl_PL.ISO-8859-2, fr_FR.ISO-8859-1, de_DER.ISO-8859-1, it_IT.ISO-8859-1, cs_CZ.CP1250, pl_PL.CP1250, fr_FR.CP1252, de_DER.CP1252, it_IT.CP1252.