Autor Téma: Chybná diakritika  (Přečteno 3856 krát)

Offline Morrison

  • Plnoletý
  • ***
  • Příspěvků: 178
  • Karma: 6
    • Verze Delphi: D5, XE2
Chybná diakritika
« kdy: 14-01-2016, 13:04:24 »
Pěkný den všem,
připojuji se na MS SQL server z programu napsaném v Delphi 5 pomocí ODBC a mám problém s tím, že na některých strojích nedokážu rozchodit českou diakritiku. Teď naposledy například úplně nové PC, diakritika v pořádku. Odešel HDD, proběhla přeinstalace systému (údajně naprosto totožné sestavení) a diakritika v čudu. Zkoušel jsem různé verze ODBC ovladače, zakázat převod znakových sad, nastavení znak. sady pro NEUnicode programy (i s nastavením nejdříve na ENG a pak zpět na Češtinu). Nic nepomáhá. Nesetkal jste se s tím už někdo?
nil

Offline martinnr

  • Plnoletý
  • ***
  • Příspěvků: 127
  • Karma: 2
    • Verze Delphi: 7,2009,XE7
Re:Chybná diakritika
« Odpověď #1 kdy: 14-01-2016, 13:22:40 »
problem sa tyka akej casti programu?
zobrazovanie udajov na obrazovke? tlac? export do nejakych formatov?

obcas sa aj nam v apke vyskytne take nieco, nepamatam si riesenia vsetky, ale jeden z dovodov byval aj slovenska znakova sada vo fonte pouzitom na formularoch. tam je nastaveny nejaky font a ak na danom systeme presne ten font nie je, tak sa nahradi inym, ktory uz moze mat problem s lolanymi znakmi. alebo v systeme aj je ten font, ale neobsahuje lokalne(SK) znaky.
samozrejme taketo problemy by uz na novsich systemoch nemali byt, ale pises ze to mas v D5 a tam by som este videl akesi riziko. a v D7 a teda asi aj v D5 este bolo potrebne nastavovat pri objektoch, ktore mali property Font, pod-property "Charset" na hodnotu "Easteurope", pretoze na cudzojazycnych systemoch to zobrazovalo hakybaky. Ale predpokladam, ze toto su original SK windowsy.
hovorim, nemusi to byt v tomto, ale cekni.

Offline Morrison

  • Plnoletý
  • ***
  • Příspěvků: 178
  • Karma: 6
    • Verze Delphi: D5, XE2
Re:Chybná diakritika
« Odpověď #2 kdy: 14-01-2016, 13:50:18 »
Díky za reakci. Problém bude kdesi ve Windows, protože na některých PC to chodí bez problémů a na některých ne, i když exáč programu je jeden a ten samý. Nastavení charsetu zobrazovacího prvku (konkrétně ListBox) nepomáhá, znaky jsou zkomolené už na úrovni dat v Query. Když se ze stejného PC, kde v aplikaci jsou znaky poškozené podívám na data přímo přes Microsoft Server Management Studio, tak tam je diakritika v pořádku. Jenomže můj program je napsaný v D5, tedy ne-Unicode a to bude asi kámen úrazu, ale proč jen na některých PC (ani verze Windows nehraje roli, mám PC s Win7 kde to chodí a jiné také s Win7, kde to zase nechodí. To samé Win10)?
nil

Offline martinnr

  • Plnoletý
  • ***
  • Příspěvků: 127
  • Karma: 2
    • Verze Delphi: 7,2009,XE7
Re:Chybná diakritika
« Odpověď #3 kdy: 14-01-2016, 14:05:44 »
skus porovnat v ovladacich paneloch nastavenia v sekcii "Jazyk", "Oblast" a podobne...
Mali sme tiez nieco podobne, ale to suviselo s desatinnou ciarkou pri zadavani cisiel do datasetov.
Ak si dobre pamatam, tak sme v nastaveni pre "Oblast a jazyk" (tak sa to vola na ceskych Win7), potom zalozka "Misto", tak sme zmenili (ak je tam Slovensko) aktualne miesto na nieco ine ako Slovensko, urobili restart systemu, potom znovu naspat na "Slovensko" a znovu restart. a potom uz to islo.
viem, ze to nedava moc nejaky velky zmysel, ale mala to efekt a tiez to bolo na stadardnych win7sk, ktore su bezne a inde na takych problem nebol.

Offline Morrison

  • Plnoletý
  • ***
  • Příspěvků: 178
  • Karma: 6
    • Verze Delphi: D5, XE2
Re:Chybná diakritika
« Odpověď #4 kdy: 14-01-2016, 14:23:44 »
To jsem bohužel už také zkoušel, bez úspěchu :( Ale každopádně díky moc za snahu mi pomoci!
nil

Offline našinec

  • Hrdina
  • ****
  • Příspěvků: 308
  • Karma: 4
Re:Chybná diakritika
« Odpověď #5 kdy: 15-01-2016, 09:06:19 »
Zkus si překontrolovat, jaký default jazyk a klávesnici vidí Tvůj program na daném PC. 

Offline Morrison

  • Plnoletý
  • ***
  • Příspěvků: 178
  • Karma: 6
    • Verze Delphi: D5, XE2
Re:Chybná diakritika
« Odpověď #6 kdy: 15-01-2016, 11:15:45 »
Zkus si překontrolovat, jaký default jazyk a klávesnici vidí Tvůj program na daném PC.

Tomu moc nerozumím. Myslíš pomocí nějaké API funkce? GetLocaleInfoEx()?
nil

Offline našinec

  • Hrdina
  • ****
  • Příspěvků: 308
  • Karma: 4
Re:Chybná diakritika
« Odpověď #7 kdy: 15-01-2016, 11:28:36 »
Existují funkce jako např. GetUserDefaultLangID,GetSystemDefaultLangID,GetSystemDefaultLCID, a další. Mělo by Ti to vrátit hodnotu '1029'.
Pak bych provedl kontrolu např. za pomocí Screen.DefaultKbLayout.

Jinými slovy, dle mého soudu je nejpravděpodobnější, že byl 'chybně' nainstalován winOS. Je tu však i další možnost. Inspirace pro řešení zde: http://howto.imba.cz/index.php?alias=trichedit-a-diakritika.

Offline Morrison

  • Plnoletý
  • ***
  • Příspěvků: 178
  • Karma: 6
    • Verze Delphi: D5, XE2
Re:Chybná diakritika
« Odpověď #8 kdy: 15-01-2016, 12:55:45 »
Díky moc, to rozhodně vyzkouším (dnes bohužel nemám k problémovému PC přístup). Na PC, kde nemám s diakritikou problém, to správně zobrazuje hodnotu 1029.
nil

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 1722
  • Karma: 70
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:Chybná diakritika
« Odpověď #9 kdy: 16-01-2016, 13:12:01 »
Pokud si pamatuji dobre, tak Delphi do nejake verze < D2007 pro anstistringy nemaji u retezce ulozenou kodovou stranku (mimochodem ke stejnému závěru teď nadávno dorazil i FPC, kdy pro ansistringy přidává podporu kodové stránky). Pokud si dobre pamatuji, tak program co jsem mel napsany v D5 mel napr. problemy s kopirovanim pres schranku: pokud jsem mel u sveho programu nastavenou klavesnici CZ a treba v notepadu jsem byl prepnuty na EN tak doslo ke zmrsenemu vlozeni. Podle mne se to dalo řešit jak už bylo řečeno výchozím jazykem.

Každopádně s přechodem na D2007 se to vyřešilo v podstatě ve většině případů, a s přechodem na unicode úplně takže jsem to přestal řešit.

Pro úplnost uvádím, že  v system.pas je DefaultSystemCodePage a fukce StringCodePage, ktera pro ansistring vrati kodovou stranku.

Embarcadero MVP - Czech republic

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 1722
  • Karma: 70
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:Chybná diakritika
« Odpověď #10 kdy: 16-01-2016, 13:12:46 »
Něco jsem o tom napsal dříve http://delphi.cz/post/string-delphi-unicode.aspx
Embarcadero MVP - Czech republic

Offline Morrison

  • Plnoletý
  • ***
  • Příspěvků: 178
  • Karma: 6
    • Verze Delphi: D5, XE2
Re:Chybná diakritika
« Odpověď #11 kdy: 18-01-2016, 17:16:22 »
Bylo pro mě docela velkým překvapením, když jsem konečně zjistil příčinu toho problému - špatná verze BDE O_o
První instalačka byla ze slunecnice.cz, jestli se nepletu verze 5.2 S tou byla diakritika rozhozená, odinstalovaní a nová instalace verze 5.1 a je po problému.

Edit: asi by se to dalo řešit i editací IDAPI.CFG, ale nainstalovat rovnou funkční verzi BDE je pro mě pohodlnější.
« Poslední změna: 18-01-2016, 17:20:16 od Morrison »
nil

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1796
  • Karma: 77
    • Verze Delphi: D2007, XE3, DX10
Re:Chybná diakritika
« Odpověď #12 kdy: 18-01-2016, 17:41:55 »
Bylo pro mě docela velkým překvapením, když jsem konečně zjistil příčinu toho problému - špatná verze BDE O_o
Pro me je zase velkym prekvapeni, ze nekdo pouziva takovy shit jako BDE a jeste to v dotazu neuvede  :o

Offline Morrison

  • Plnoletý
  • ***
  • Příspěvků: 178
  • Karma: 6
    • Verze Delphi: D5, XE2
Re:Chybná diakritika
« Odpověď #13 kdy: 18-01-2016, 18:30:07 »
Kdybych nemusel, tak ho nepoužívám, nejsem masochista. Je v D5 Prof. něco lepšího, co se dokáže napojit na MS SQL? A jinak máš pravdu, napsal jsem pouze, že data byla chybná už na úrovni Query, kdybych uvedl, že jde o TQuery, bylo by to určitě jasnější, a jistě bys mi poradil jako první.
nil

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1796
  • Karma: 77
    • Verze Delphi: D2007, XE3, DX10
Re:Chybná diakritika
« Odpověď #14 kdy: 18-01-2016, 19:07:41 »
Je v D5 Prof. něco lepšího, co se dokáže napojit na MS SQL?
V rannych verzich Delphi jsme misto BDE pouzivali Füleho ODBCe

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

Jméno: E-mail:
Ověření:
Datový typ v Delphi, který má True a False: