Monthly Archives: November 2006

Velká písmena na Firebirdu 1.5

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.