
[Delphi] Database Desktop - chybne zobrazenie diakritiky...
Zdravim,
mam taky maly problem... urobil som jeden program v Delphi s databazou urobenou v Database Desktop (tabulka Paradox 7), no len nedavno som si vsimol, ze v Database Desktope mi zle zobrazuje diakritiku... miesto "ľ" sa mi zobrazuje "%" atd... skusal som nastavit aj iny jazyk tabulky (Restructure -> Table Language -> Modify) na "Borland ENG Latin-1", ten isty jazyk som nastavil aj v BDE Administratore ako "LANGDRIVER" pre tabulku Paradox a tiez aj v System -> INIT -> LANGDRIVER... no nepomohlo... co by som mohol este urobit, resp. co urobit, aby sa mi v Database Desktope zobrazovali texty so spravnym kodovanim...
V tom mojom programe pouzivam SQL jazyk a ked pouzijem vyhladavanie "select * from data where name like 'píštaľka'" tak samozrejme to nenajde... aj ked v programe to zobrazi spravne s diakritikou... ale v tabulke je miesto "ľ" -> "%".
OS: WinXP SP2
Database Desktop: v7.0
Delphi 6
Vdaka...
Tak som skusil, co ste mi tu poradili, no nic z toho mi nefunguje... nastavil som kodovanie v configu BDE a vytvoril som nanovo novu Paradox 7 tabulku... no diakritika nefungovala ani tak... v com este robim chybu?
Keď si dáš zobraziť v komponente DBGrid tú Tvoju tabuľku, tak čo... ?
Diakritika sa nezobrazí správne ? Alebo to stále trápiš zobraziť v Database Desktope ?
Zobrazenie v gride som neskusal... mne ide o zobrazenie v Database Desktop... V programe mi to funguje spravne s diakritikou... ale ked si to vyhladam cez SQL select tak mi to proste nevyhlada... ak dam miesto "ľ" "%" tak mi to najde, aj napriek tomu ze sa to zobrazi spravne...
v databaze: ko%ajnice
v programe: koľajnice
ak si to dam vyhladat: select * from data where name like "koľajnice" tak mi nenajde nic
ak si to dam vyhladat: select * from data where name like "ko%ajnice" tak mi najde presne ten zaznam, ktory potrebujem, ale ako zobrazene slovo je: "koľajnice"...
edit: este poznamka... vyhladavanie je realizovane v programe, nie v database desktop... ak si dam zobrazit vsetky polozky, zobrazi ich spravne s diakritikou, ale hladanie s diakritikou uz nefunguje... aj ked je to zobrazene spravne...
Aha, tak potom tento problém možno budem mať aj ja.
Nastav si ještě písmo "s češtinou" v Database desktopu výběrem z nabídky: Edit-->Preferences, vybrat ucho General, klik na tlačítko [Change].
Urobil som aj toto, no nepomohlo... nastavil som tam "Arial"... stale sa mi tam zobrazuje % misto ľ. Vsade mam nastavene "Pdox ANSI Czech"... aj v konfiguracii BDE, aj v Database Desktope... robi to aj vtedy, ked vytvorim novu tabulku Paradox 7... v com este moze byt problem?
Skús upraviť registre:
HKEY_CURRENT_USER\Software\Borland\DBD\ 7.0\Preferences\Properties
zmeň hodnotu SystemFont na FixedSys
Ak už toto nepomôže, tak sa vzdávam....
Problem je dokonca v niecom inom... a tomu uz vobec nechapem... teraz sa o tom nechcem rozpisovat, zajtra to podrobne rozpisem... ale v Database Desktop problem nie je... dokonca ani v LANGDRIVER-i...
Dobre, rozpisem cely sposob ako to funguje:
V tabulke paradox 7 mam nejake stlpce, v ktorych su udaje... jeden udaj je: "píšťalka". Vyhladavanie je ralizovane v Delphi takymto sposobom:
a teraz popis: zadany text si skonvertujem na velke pismena a vyhladam v tabulke, tak ze vsetko skonvertujem na velke pismena...
Hladane slovo: píšťalka
Vysledok v "SearchText" je: PÍŠŤALKA
Ak zadam SQL prikaz: select upper(Mark) from data a vypis si hodim do dbgridu, tak sa mi zobrazi "PÍŠŤALKA" - cize podla spravnosti by hladanie fungovat malo... ale nefunguje...
Ak odstranim "%" v SearchText, ani tak to nefunguje... jedno, aj druhe skonvertuje spravne na velke pismena... zistil som, ze problem robia dve pismena: "ľ" a "ť".
ExecSQL je len moja funkcia, ktora vrati vysledok selectu do nejakeho query... Ide mi o hladanie, kde by sa nerozlisovali male a velke pismena, cize nie hladanie case-sensitive...
Ked som to urobil na sposob case-sensitive, tak to funguje spravne... ale nechapem, jednu vec... ked to prevedie v jednom, aj v druhom pripade spravne, preco to potom nefunguje??? Teda s malymi pismenami to funguje a s velkymi nie... je to normalne???
Kde je problem

hadam len nie vo mne... ![]:)](https://static.poradna.net/images/smiley/evilsmile.gif)
edit: skonvertovat to na male pismena som este neskusal...
Pozeram, ze vela ste mi neporadili... hmmm...
Takový zoufalý pokus: Zkus použít místo AnsiUpperCase SQL funkci UPPER i na hledaný vzor a dej vědět.
Problém je aj vo Windows, máš anglický. Ja som sa s tým nestretol. Mám český, ale zaujímavé vlákno, človek netuší na akých systémoch budú jeho programy bežať, takže si to tu popozerám.
Ja mám v tej hodnote BDA Admina 'ascii' ANSI.