Chyba při práci s externími dBase soubory
Submitted by admin on Thu, 2000-01-06 11:06.
Win9x
Microsoft Access, MS Jet
Při používání externích souborů dBase v MS Accessu je třeba dávat pozor na indexové soubory. Pokud jsou soubory a indexy používány např. pomocí IDAPI a nyní je třeba např. použít Access na vytvoření sestav (reportů) tak nastávají problémy. Access (MS Jet) má totiž jinou sortovací tabulku než IDAPI. A tuto tabulku nejde (aspoň já to nevím) nikde nastavit. Pokud Access se totiž rozhodne z nějakého důvodu (automaticky pozná index nebo je požadováno řazení) používat index z MDX, tak při zobrazování (zpracovávání) záznamů postupně jede po MDX a současně po interní sortovací tabulce a pokud nejsou stejné, tak prostě přeskakuje záznamy a není síly to změnit. Nejde zdaleka jen o diakritiku ale třeba kombinaci písmen, číslic a znmének (*,+,..). Pokud je tedy potřeba používat tak se musí zaručit, že indexové pole bude používat jen znaky, které jsou v obou tabulkách stejně řazené (např. jen číslice nebo jen znaky). Další problém vznikne pokud Access zapíše do indexového pole. V tomto případě se zase stane, že bude bordel když se použije index v IDAPI. Nastavení directivy SOFTWARE\Microsoft\Jet\3.5\Engines\XBase\CollatingSequence na ASCII nebo International sice částečně pomáhalo pro diakritiku (za cenu ohromného zpomalení, protože se nepoužívaly indexy) ale samozřejmě už ne na ostatní znaky (0..127). Verze 95 i 97 se chovají stejně.
Win9x
Microsoft Access, MS Jet
Při používání externích souborů dBase v MS Accessu je třeba dávat pozor na indexové soubory. Pokud jsou soubory a indexy používány např. pomocí IDAPI a nyní je třeba např. použít Access na vytvoření sestav (reportů) tak nastávají problémy. Access (MS Jet) má totiž jinou sortovací tabulku než IDAPI. A tuto tabulku nejde (aspoň já to nevím) nikde nastavit. Pokud Access se totiž rozhodne z nějakého důvodu (automaticky pozná index nebo je požadováno řazení) používat index z MDX, tak při zobrazování (zpracovávání) záznamů postupně jede po MDX a současně po interní sortovací tabulce a pokud nejsou stejné, tak prostě přeskakuje záznamy a není síly to změnit. Nejde zdaleka jen o diakritiku ale třeba kombinaci písmen, číslic a znmének (*,+,..). Pokud je tedy potřeba používat tak se musí zaručit, že indexové pole bude používat jen znaky, které jsou v obou tabulkách stejně řazené (např. jen číslice nebo jen znaky). Další problém vznikne pokud Access zapíše do indexového pole. V tomto případě se zase stane, že bude bordel když se použije index v IDAPI. Nastavení directivy SOFTWARE\Microsoft\Jet\3.5\Engines\XBase\CollatingSequence na ASCII nebo International sice částečně pomáhalo pro diakritiku (za cenu ohromného zpomalení, protože se nepoužívaly indexy) ale samozřejmě už ne na ostatní znaky (0..127). Verze 95 i 97 se chovají stejně.