Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem [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...

Předmět Autor Datum
Pokud používáš Paradox, tak jeho tabulky v sobě obsahují identifikaci jazyka, která byla nastavena v…
Jan Fiala 21.01.2007 12:38
Jan Fiala
Nastav si "Langdriver" všade na Paradox Czech 852 !!!;-) Funguje - odskúšané...
pme 21.01.2007 12:51
pme
toto som skusal... nepomohlo... nastavil som to v Database Desktope, aj v BDE Configuration (Drivers…
Intex 21.01.2007 12:58
Intex
Musis to nastavit pred vytvorenim tabulek. A pokud pracujes v prostredi Windows, tak nastav Pdox ANS…
Jan Fiala 21.01.2007 13:14
Jan Fiala
Urobil si restart PC ?
pme 21.01.2007 13:15
pme
Restart PC nie... len som pozatvaral configuraciu BDE, Database Desktop a Delphi... ale PC som neres…
Intex 21.01.2007 13:31
Intex
No tak to urob...
pme 21.01.2007 13:32
pme
Skusim... ak to nepomoze, urobim to ako pisal JAFI... zmenim konfiguraciu v BDE a na novo urobim tab…
Intex 21.01.2007 13:42
Intex
1.) Ten reštart som myslel preto, aby sa Ti konfigurácia načítala do budúcna pre všetky novozaložené…
pme 21.01.2007 13:48
pme
Tak som skusil, co ste mi tu poradili, no nic z toho mi nefunguje... nastavil som kodovanie v config…
Intex 21.01.2007 16:58
Intex
Keď si dáš zobraziť v komponente DBGrid tú Tvoju tabuľku, tak čo... ? Diakritika sa nezobrazí správn…
pme 21.01.2007 18:06
pme
Zobrazenie v gride som neskusal... mne ide o zobrazenie v Database Desktop... V programe mi to fungu…
Intex 21.01.2007 18:32
Intex
Aha, tak potom tento problém možno budem mať aj ja. poslední
msx. 26.01.2007 13:36
msx.
Nastav si ještě písmo "s češtinou" v Database desktopu výběrem z nabídky: Edit-->Preferences, vybrat…
Rce 21.01.2007 23:19
Rce
Urobil som aj toto, no nepomohlo... nastavil som tam "Arial"... stale sa mi tam zobrazuje % misto ľ.…
Intex 22.01.2007 19:11
Intex
Skús upraviť registre: HKEY_CURRENT_USER\Software\Borland\DBD\ 7.0\Preferences\Properties zmeň hod…
pme 22.01.2007 20:02
pme
Problem je dokonca v niecom inom... a tomu uz vobec nechapem... teraz sa o tom nechcem rozpisovat, z…
Intex 22.01.2007 21:25
Intex
Dobre, rozpisem cely sposob ako to funguje: V tabulke paradox 7 mam nejake stlpce, v ktorych su uda…
Intex 22.01.2007 21:48
Intex
Pozeram, ze vela ste mi neporadili... hmmm... :-|
Intex 24.01.2007 10:30
Intex
Takový zoufalý pokus: Zkus použít místo AnsiUpperCase SQL funkci UPPER i na hledaný vzor a dej vědět…
Rce 24.01.2007 12:03
Rce
Problém je aj vo Windows, máš anglický. Ja som sa s tým nestretol. Mám český, ale zaujímavé vlákno,…
msx. 26.01.2007 13:28
msx.
Ja mám v tej hodnote BDA Admina 'ascii' ANSI.
msx. 26.01.2007 13:32
msx.

Pokud používáš Paradox, tak jeho tabulky v sobě obsahují identifikaci jazyka, která byla nastavena v době jejich vytvoření. Pak můžeš dělat s nastavením BDE co chceš, ale nebude to mít na ty tabulky vliv.

Řešením je správne nastavit langdriver v BDE před vytvářením abulek nebo použít BDE API funkce, tuším dbiDoRestructure() by mohlo pomoct. Podorbnosti najdeš v helpu v adresáři s BDE.

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...

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?

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:

SearchText:= QuotedStr('%' + AnsiUpperCase(FlatSearchText.Text) + '%');
str:= 'select * from data where (upper(Mark) like ' + SearchText + ')';
ExecSQL(str, false, TempQuery);

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... ]:)

edit: skonvertovat to na male pismena som este neskusal...

Zpět do poradny Odpovědět na původní otázku Nahoru