tabs ↹ over ␣ ␣ ␣ spaces

by Jiří {x2} Činčura

Velká písmena na Firebirdu 1.5

18 Nov 2006 1 mins Firebird

Na konferenci jsem se dozvěděl, jaktože FB 1.5 občas správně provedl UPPER na národních znacích a někdy na to zarytě kašlal. Je to velice prosté – pokud je na sloupci definováno collate, funguje vše dobře. Když se použije defaultní, funkce UPPER nepřevede národní znaky dobře (no vlastně je nechá tak jak jsou 😉). FB 2 už má toto samozřejmě opraveno.

No a pojďme omrkat ukázku:

Vytvoříme tabulku:

create table test (col1 varchar(20) character set win1250 collate PXW_CSY, col2 varchar(20) character set win1250);

Vložíme data:

insert into test values ('ěščřžýáíé_aaa', 'ěščřžýáíé_aaa');

A zkouška:

select upper(col1), upper(col2) from test;
UPPER                UPPER
==================== ====================
ĚŠČŘŽÝÁÍÉ_AAA        ěščřžýáíé_AAA

A je hotovo. Funguje. Doufám, že tento malý tip pomůže. Nevím, kdo na to přišel první, já to však vím od Stefana Heymanna.

Profile Picture Jiří Činčura is .NET, C# and Firebird expert. He focuses on data and business layers, language constructs, parallelism, databases and performance. For almost two decades he contributes to open-source, i.e. FirebirdClient. He works as a senior software engineer for Microsoft. Frequent speaker and blogger at www.tabsoverspaces.com.