Stavy databázového spojenia
Aby systém založený na databázovom SQL serveri (viď Technológie spracovania dát) mohol pracovať, musí mať nastavené spojenie (tzv. "connection") na databázu, ktorá obsahuje dáta, s ktorými má pracovať. Takýchto spojení môže existovať v niektorých prípadoch aj viac (najmä pri prevádzkovaní multiverzie). Inštalačný program ABRA Gen zakladá jedno spojenie automaticky v rámci inštalácie systému, takže bežný používateľ, ktorý neprevádzkuje multiverziu systému, sa tým nemusí vôbec zaoberať. Na administráciu spojení v ABRA Gen slúži nástroj DBAdmin.
Každé spojenie sa nachádza v nejakom stave. Stav spojenia buď systém nastavuje automaticky, ak používateľ v rámci systému ABRA Gen vykonal používateľsky také akcie, ktoré vedú k zmene stavu spojenia, alebo ho možno nastaviť ručne pomocou nástroja DBAdmin. V akom stave sa dané spojenie aktuálne nachádza, je vidieť jednak v nástroji DBAdmin a jednak pri prihlasovaní používateľa do systému v dialógu pre výber spojenia na databázu. (Ako bolo spomenuté v popise tohto dialógu, dialóg pre výber spojenia nie je zobrazovaný len v prípade, že v inštalácii existuje len jedno spojenie a to je v stave OK, keďže v takom prípade je jeho zobrazenie zbytočné). Vo všetkých ostatných prípadoch je dialóg vyvolaný. Používateľovi je tak vždy indikované, že pripojením k danému spojeniu môže s ohľadom na stav spojenia dôjsť k zmenám existujúcej databázy, ktoré môžu byť aj nezvratné. Napr. pri zmene stavu spojenia v nástroji DBAdmin zo stavu OK na Obnova by došlo k zlikvidovaniu existujúcej databázy (bola by nahradená novou toho istého mena, do ktorej by sa obnovili dáta zo zálohy).
Možné stavy spojenia na databázu podľa toho, aké operácie používateľ vykonal alebo chce vykonať:
Grafický indikátor tohto stavu: 
Stav "Nová databáza" spôsobí, že pri najbližšom spustení systému ABRA Gen (po výbere daného spojenia) dôjde k vytváraniu novej databázy. Tento stav teda znamená, že spojenie je pripravené na vytvorenie novej databázy. Podľa toho, či bolo v definícii daného spojenia zadané, či doň nahrať aj demodáta (z vybraného *.DEM súboru) voľbou Nahrať demodáta alebo nie, príp. ak ide o Prechod medzi systémami ABRA Gen a bolo zadané, že sa majú nahrať dáta vyexportované z inej databázy systému ABRA Gen (z vybraného *.DBE súboru) voľbou Nahrať dáta zo súboru, bude po prihlásení do takého spojenia vytvorená:
- nová prázdna databáza obsahujúca iba aktuálne východiskové dáta (tzv. inicializačné dáta (initdata)) dodávané výrobcom k danej verzii programu
- alebo nová databáza naplnená zvolenými demonštračnými dátami resp. štartovacími dátami (ako je to s aktuálnosťou initdata v tomto prípade, viď popis inicializačných dát)
- alebo nová databáza naplnená dátami vyexportovanými z pôvodnej databázy systému ABRA Gen, z ktorého sa prechádza, viď prechod medzi systémami ABRA Gen (migrácia)
Databáza bude vytvorená v stave zodpovedajúcom aktuálne nainštalovanej verzii, tj. podľa súboru CreateDB.DBO. Súbor CreateDB.DBO obsahuje okrem iného operácie, ktoré zabezpečia naplnenie databázy dátami v závislosti od kontextu (tj. buď initdatami, alebo initdatami + demodátami či štartovacími dátami, alebo v prípade migrácie nenaplní databázu initdatami, ale dátami vyexportovanými z pôvodnej databázy).
Variantne možno novú databázu vytvoriť aj podľa *.DBO súborov z iného (zo zadaného) adresára, čiže vďaka tomu teoreticky aj podľa *.DBO z inej verzie, než je verzia aktuálnej inštalácie. Viac viď nástroj DBAdmin, krok Zákaznícke úpravy.
V rámci vytvárania novej databázy je okrem iného možné vykonať jej zákaznícke úpravy (napr. pridanie vlastných databázových objektov (tabuľky, triggre, ...)). Viac viď nástroj DBAdmin, krok Zákaznícke úpravy.
Konkrétne kroky, ktoré teda systém pri tvorbe novej databázy vykoná:
- Vytvorí novú databázu (súbor *.fdb) zadaného mena a na zadanom mieste (pri Win PC hovoríme o ceste).
- Vytvorí tabuľky a iné databázové objekty v tejto databáze podľa súboru Create*.DBO.
- Vytvorí tabuľky a iné databázové objekty v databáze podľa definícií používateľa, a to ak ide o tvorbu nového spojenia prostredníctvom nástroja DBAdmin a ak boli v kroku Zákaznícke úpravy zadané aj *.DBO súbory so zákazníckymi úpravami.
- Vykoná načítanie inicializačných dát, resp. demodat/startdat.
- Upraví štruktúru práve založených tabuliek podľa prípadných definícií extra položiek uložených v repozitári. (Ak by existovali výrobcom predvolene dodávané extra položky, potom by sa najskôr vykonalo načítanie prvej časti. inicializačných dát (len s dodávanými definíciami extra položiek), potom by sa podľa nich vykonala úprava štruktúry tabuliek a až potom by sa vykonalo načítanie zvyšných inicializačných dát do tabuliek s už upravenou štruktúrou.)
- Vytvorí indexy k tabuľkám databázy.
Ak databáza toho istého mena na tej istej ceste už existuje, tak podľa stavu príznaku Zmazať databázu pred spustením bude táto databáza buď najskôr zmazaná, alebo bude obnova zastavená.
Tento stav je nastavený:
- automaticky po pridaní novej firmy bez obnovy dát v agende Vytvorenie novej firmy - nové spojenie (platí iba pre Firebird)
- používateľ (typicky administrátor) ho môže nastaviť sám v nástroji DBAdmin:
- po pridaní nového spojenia pomocou voľby Pridať nové spojenie
- nastavením parametrov existujúceho spojenia v rámci voľby Editovať parametre spojenia
Grafický indikátor tohto stavu: 
Stav "Obnova" znamená, že spojenie je pripravené na vytvorenie novej databázy s naplnením dátami zo súboru vybranej zálohy. Po prihlásení do takého spojenia bude vytvorená prázdna databáza, do ktorej budú obnovené dáta uložené v zadanom *.ABF súbore zálohy.
Obnova dát zo zálohy obnoví databázu "tak, ako bola". Je jedno, či štruktúra dát bola taká alebo onaká. (Štruktúra databázy sa vytvorí podľa informácií uložených v zálohe). Tj. výsledok obnovy dát vykonanej systémom ABRA Gen je podobný, ako keby sme databázu obnovili priamo prostriedkami databázového stroja. Teda je jedno, v akej verzii systému ABRA Gen budeme vykonávať obnovu dát zo zálohy zhotovenej trebárs v staršej verzii. Výsledkom je súbor databázy presne taká, aká bola v okamihu zhotovenia zálohy dát. (Samozrejme druhá vec je, či taká databáza bude použiteľná v aktuálnej verzii systému. Vo väčšine prípadov nie, a preto je potrebné následne vykonať update dát danej databázy, viď ďalej.)
Súbor zálohy *.ABF odporúčame obnovovať do rovnakej verzie databázového servera. V opačnom prípade môžu byť niektoré obnovy dát komplikované. Môže sa napr. stať, že obnova dát nebude možná do nejakej novšej verzie databázového servera, ktorý v danej dobe ešte nebude systémom ABRA Gen podporovaný. Preto vždy konzultujte kompatibilitu databázových serverov uvedenú v kap. Databázový server.
V prípade obnovy dát, ktorá bola vytvorená na verzii databázového servera Firebird nižšej ako verzia 3, do verzie Firebird 3 postupujte podľa odporúčaní Obnova databázy do verzie databázového servera Firebird 3.
Následne sa spojenie automaticky prepne do stavu Update a vykoná sa dátový update, tj. prípadná úprava týchto obnovených dát tak, aby zodpovedali aktuálne nainštalovanej verzii. Táto operácia môže trvať aj dlhší čas v závislosti od veľkosti obnovovaných dát. Samozrejme, že pokiaľ ide o zálohu dát zhotovenú v tej istej verzii systému, do ktorej obnovujeme, žiadne úpravy nie sú nutné a nebudú žiadne vykonané. Avšak k prepnutiu na stav Update dôjde formálne vždy, aj keď je záloha z tej istej verzie, pretože v aktuálnej verzii mohlo dôjsť k doinštalácii modulu. Aby sa databázové objekty pre daný modul v danej databáze vytvorili (v tomto prípade podľa súboru CreateDB.DBO), je potrebné vykonať dátový update.
Opakovaná obnova:
Obnovu dát možno volať aj opakovane, a to buď od začiatku alebo s pokračovaním na mieste, kde bola predchádzajúca obnova prerušená (chyba v dátach zálohy/výpadok apod.). Ako také opakované volanie prebehne, pokiaľ je spojenie v stave Obnova, viď popis príznaku Zmazať databázu pred spustením. Pokiaľ k prerušeniu spracovania (chyba/výpadok) došlo až po prepnutí do stavu Update, pri novom spustení systému sa už volá rovno update (obnova sa už nevykonáva, spojenie už hlási stav Update.)
Pokiaľ bude databáza v stave nedokončenej obnovy alebo sa počas obnovy vyskytli chyby, nebude možné sa do takého spojenia prihlásiť (ani keby sa následne ručne nastavil jeho stav na OK alebo Update). Pokiaľ sa teda chyby vyskytnú, databáza sa bude musieť najskôr uviesť do korektného stavu ručne editáciou postihnutých tabuliek v databáze. Pokiaľ sa také chyby vyskytnú počas obnovy a pokračuje sa v obnove, tak sa na konci obnovy (ale pred začiatkom obnovy ďalších častí a update) zobrazí informačné hlásenie a proces sa preruší. Tento okamih je totiž ten pravý na prípadné otvorenie databázy a začatie ručných opráv. (Po spustení procesu update by totiž niektoré update operácie mohli "prejsť" a dáta by potom mohli byť všelijako pozmenené). Po vykonaní prípadných ručných opráv opakujte obnovu dát, kým nebude stav spojenia nastavený na OK.
V prípade prerušenia obnovy a jej následného zopakovania nesmie byť stav spojenia nastavený na OK alebo Update.
V priebehu obnovy dôjde k vytvoreniu nasledujúcich dočasných tabuliek:
| Názov | Popis |
|---|---|
| nx$restore_state |
V tejto tabuľke je uložená informácia, či bola korektne vykonaná inštrumentácia (naplnenie tabuliek). Ak tu nie je záznam s hodnotou 1, potom inštrumentácia neprebehla a vykoná sa znova. V závislosti od hodnoty v stĺpci State sa nastaví interný príznak RestoreState:
Príznak RestoreState sa nastavuje:
|
| nx$restore_backupH | Informácia o súbore zálohy. Kontrolný súčet súboru zálohy musí súhlasiť s kontrolným súčtom tu uvedeným. Inak povedané obnova pokračuje s tým súborom obnovy, s ktorým začala. |
| nx$restore_data | Informácia o tom, ktorý záznam v poradí sa obnovuje pre danú tabuľku. |
| nx$restore_dll_A |
Príkazy, ktoré sa majú vykonať po naplnení tabuliek dátami, a informácia o tom, či sa vykonali. Hodnota v stĺpci State môže nadobúdať tieto hodnoty:
|
| nx$restore_dll_B |
Príkazy, ktoré sa majú vykonať pred naplnením tabuliek dátami, a informácie o tom, či sa vykonali. Hodnota v stĺpci State môže nadobúdať tieto hodnoty:
|
| nx$restore_error | V tejto tabuľke sú uložené zaznamenané chyby (aj z predchádzajúceho spustenia obnovy). |
Grafický indikátor tohto stavu: 
Stav "Update" znamená, že spojenie je pripravené na úpravu databázy do stavu zodpovedajúceho aktuálne nainštalovanej verzii. Po prihlásení do takého spojenia (tj. po výbere takého spojenia v rámci spustenia systému ABRA Gen, viď dialóg pre výber spojenia na databázu), bude zahájený proces update dát, tj. štruktúra a dáta vybraného spojenia budú upravené tak, aby bolo použiteľné s aktuálne nainštalovanou verziou (dôjde k aplikácii UpdateListu (resp. súboru UpdateDB.DBO) na zvolenú existujúcu databázu). Proces dátového update je potrebný aj v prípade doinštalácie modulu, keď sa majú do danej databázy pridať databázové objekty pre nový modul. Aby sa v danej databáze vytvorili (v tomto prípade podľa súboru CreateDB.DBO), je potrebné vykonať práve dátový update.
Táto operácia môže trvať niekoľko minút a je nevratná. Tzn., že po vykonaní procesu dátového update môžu byť dáta iné, než boli pred jeho vykonaním. Záleží na tom, či výrobca medzi jednotlivými verziami systému (tj. medzi verziou, z ktorej pochádza vaša databáza, a verziou, ktorú máte aktuálne nainštalovanú a v rámci ktorej práve vykonávate update dát) vykonal nejaké úpravy v štruktúrach dát alebo nie (napr. pridal nové tabuľky do databázy napr. pre nejakú novú agendu, pridal položku do existujúcej tabuľky a nastavil pre ňu nejakú východiskovú hodnotu a pod.). Od počtu týchto zmien sa odvíja aj to, ako dlho bude táto operácia trvať.
Po dokončení procesu dátového update sa stav spojenia automaticky prepne do stavu OK.
Tento stav je nastavený:
- automaticky pri aktualizácii programu, viď Aktualizácia existujúcej inštalácie - update
- automaticky po úspešnej obnove dát vykonanej v rámci stavu Obnova
- alebo ho používateľ (typicky administrátor) môže nastaviť sám v nástroji DBAdmin:
- nastavením procesu update dát existujúceho spojenia pomocou voľby Update databázy
- nastavením parametrov existujúceho spojenia v rámci voľby Editovať parametre spojenia
Do v. 10.01 vrát. boli procesy obnovy a dátového update spojené v jedno. Ich rozdelenie v rámci zavedenia tzv. inkrementálneho update od v. 10.02 umožňuje vykonanie dátového update samostatne. Možno tak nastaviť spojenie na databázu staršiu, než je aktuálne inštalovaný program (napr. databáza obnovená zo zálohy prostriedkami databázového stroja, databáza z inej inštalácie programu a pod.) a nastaviť na príslušnom spojení stav Update.
Po prihlásení do takého spojenia (tj. po výbere takého spojenia v rámci spustenia systému ABRA Gen) dôjde k povýšeniu databázy do stavu zodpovedajúceho príslušnej verzii, práve aplikáciou zmenového zoznamu UpdateDB.DBO. Pri tomto spôsobe treba mať na pamäti, že nedôjde k prenosu/obnove informácií repozitára (zo zdrojovej inštalácie, z ktorej databáza pochádza).
Schéma vykonania update databázy zo staršej verzie systému nastavením spojenia na danú fdb a nastavením stavu Update
Grafický indikátor tohto stavu: 
Stav "OK" znamená, že spojenie je v poriadku a pripravené na použitie, teda stav indikuje spojenie s prevádzkyschopnou databázou. Tzn., že po prihlásení do takého spojenia (tj. po výbere takého spojenia v rámci spustenia systému ABRA Gen), sa s príslušnou databázou nič ďalšie nevykonáva a bude možné so systémom ihneď začať pracovať.
Tento stav je nastavený:
- automaticky po úspešnom vytvorení novej databázy v rámci stavu Nová databáza
- automaticky po úspešnom dokončení obnovy dát vykonanej v rámci stavu Obnova
- automaticky po úspešnom dokončení update dát vykonaného v rámci stavu Update
- alebo ho používateľ (typicky administrátor) môže nastaviť sám v nástroji DBAdmin:
- nastavením parametrov existujúceho spojenia v rámci voľby Editovať parametre spojenia
Stav ok zodpovedá príznaku "Databáza je vytvorená", ktorý bol v nástroji DBAdmin k dispozícii vo verziách predchádzajúcich verzii 10.02.
Úprava jedného z viacerých spojení:
Procesy vytvorenia novej databázy, obnova dát a dátový update sa začínajú až po výbere konkrétneho spojenia. To umožňuje napr. obnovovať databázu jedného spojenia a pritom neobmedziť spustenie programu používateľom, ktorí chcú pracovať v inom spojení.
Ak napr. používatelia majú spojenie "Produkčné" a ďalšie spojenie "Testovacie", môžu aktualizovať testovacie dáta z ostrých dát bez odstávky systému Produkčného spojenia.