otázka
Při správě databáze nebo převodu databáze po instalaci na vyšší release programu POHODA nemohu otevřít účetní jednotku a program POHODA hlásí chybu „#3022 - Požadované změny tabulky se nepodařily, protože by vytvořily duplicitní hodnoty v indexu, primárním klíči nebo relaci. Změňte hodnoty v polích obsahujících duplicitní údaje nebo odstraňte či znovu nadefinujte index.“ Co mám udělat pro správný chod programu POHODA?
odpověď
Jedná se o duplicitní záznamy v indexovaných sloupcích databáze účetní jednotky, většinou jde o sloupec ID, výjimečně sloupec Cislo. Tato chyba může nastat z důvodu nestability síťového připojení, chybné funkce operačního systému, případně při nestandardním ukončování aplikace. V tomto případě je nutné nalézt duplicitní záznamy a tyto záznamy smazat a znovu zapsat. Pro zobrazení duplicitních záznamů je možné vhodně využít možností jazyka SQL a volby „Upravit dotaz“, kterou nabízí program POHODA. Postup odhalení duplicit je následující:
• V závěrečném logu o provedených operacích po Správě databáze nebo pokusu o převod účetní jednotky naleznete
agendu, ve které došlo k chybě. Informace o chybné agendě a také tabulce s duplicitními hodnotami, jsou viditelné
v okamžiku výskytu chybového hlášení na panelu s průběhem operací (ProgressBar). Zde si opište název tabulky,
který je zapsán v závorce.
• Pokud dojde k chybě při převodu účetní jednotky na vyšší verzi, je nutné nejprve ponížit instalovaný Release
programu POHODA na Release, ve kterém byla účetní jednotka až dosud provozována.
• Otevřete Účetní jednotku, a pokud bylo chybové hlášení zobrazeno v existující agendě programu POHODA,
otevřete tuto agendu. Pokud není možné agendu otevřít, řešení touto cestou není možné.
• Z nabídky Záznam/Výběr/Upravit dotaz zobrazte dialog pro úpravu dotazu. Pokud je volba „Upravit dotaz“
nepřístupná, pravděpodobně nemáte v agendě uložený žádný dotaz. V tom případě je nutné nejprve vytvořit
jakýkoliv filtr nebo dotaz, který bude následně možné pomocí výše zmíněné volby upravit.
• V dialogovém okně SQL definice zapíšete následující část SQL dotazu (jedná se o klauzuli WHERE), přičemž použijte
název tabulky, dále jen zkratka TAB: TAB.ID IN (SELECT ID FROM TAB GROUP BY ID HAVING COUNT(*)>1).
Dotaz je možné přejmenovat a případně uložit mezi Uložené dotazy. Jakmile dotaz potvrdíte, dojde k zobrazení
položek s duplicitními hodnotami v poli ID.
Příklad:
Pokud dojde k chybovému hlášení při Správě databáze u tabulky Faktury(FA), jedná se o duplicitu v agendách
Fakturace. V tomto případě je nutné otevřít každou agendu fakturace a upravit dotaz na (FA.ID IN (SELECT ID
FROM FA GROUP BY ID HAVING COUNT(*)>1)).
• Ve výsledném výběru záznamů, dojde k zobrazení pouze těch záznamů, jejichž ID je duplicitní. Tyto záznamy je
nutné zkontrolovat, smazat a případně znovu zapsat ty, které jsou chybné. Po smazání záznamů je nutné provést
Správu databáze.
Tímto způsobem není možné zobrazit duplicity v položkách dokladů.
V rámci služeb zákaznické technické podpory lze za úplatu provést opravu databáze tak, aby nedošlo ke ztrátě informací (nebo alespoň minimální ztrátě informací). Jedná se o expertní servisní službu. Tuto službu je nutné předem objednat buď e-mailem nebo přes naše internetové stránky, kde je nutné vyplnit formulář pro objednání těchto služeb a zaslat faxem nebo e-mailem na technickou podporu. K provedení opravy databáze je dále nutné zaslat její zálohu, ve které se duplicity vyskytují.