Page tree
Skip to end of metadata
Go to start of metadata

Prácu s databázou pre všetky akcie v prostredí D2000 (skript ESL, prostredie procesu D2000 HI) implementuje proces D2000 DBManager. Vykonávanie jednotlivých akcií (SQL príkazov) prebieha vždy v rámci nejakého fyzického spojenia (Connection) na databázu. Platí, že na jednu databázu môže byť súčasne vytvorených viacero spojení.

Existencia spojenia (Connection) má význam pri riadení transakčného prístupu k databáze. Podľa spôsobu, ako je spojenie nastavené, sú jednotlivé akcie (SQL príkazy) vykonávané:

  • okamžite po ich zadaní - režim  Auto Commit,
  • až po vykonaní príkazu COMMIT, ktorý v podstate ukončuje transakciu a všetky zmeny vyvolané predošlými akciami aplikuje na databázu. Pred vykonaním príkazu COMMIT sú všetky zmeny považované za dočasné.

Transakčný režim je v mnohých prípadoch pre prácu s databázou nevyhnutný a je ho možné riadiť prostriedkami ESL.

ESL definuje skupiny príkazov pre prístup k tabuľkám. Každá skupina sa vyznačuje (a je ohraničená) existenciou logickej akcie CONNECT a DISCONNECT (napríklad DB_CONNECT a DB_DISCONNECT). Tieto akcie vytvárajú prístup k tabuľke v databáze vždy prostredníctvom existujúceho Spojenia. Ak pri vykonávaní akcie CONNECT nie je Spojenie určené, proces D2000 DBManager použije tzv. Automatické spojenie (Default Connection). Toto pracuje v režime Auto Commit a je zdieľané (iný CONNECT bez určenia Spojenia znova využije existujúce Automatické spojenie). O jeho vznik sa samostatne postará proces D2000 DBManager.

Pre prácu so Spojením (Connection) sú určené nasledovné akcie:

Akcia Popis
DB_TRANS_OPEN Vytvorenie nového Spojenia
DB_TRANS_COMMIT Vykonanie akcie COMMIT
DB_TRANS_ROLLBACK Vykonanie akcie ROLLBACK
DB_TRANS_CLOSE Vykonanie akcie ROLLBACK + ukončenie Spojenia

Všetky prístupy k tabuľke v prostredí D2000 ak nie je povedané ináč štandardne pristupujú k databáze prostredníctvom Automatického spojenia.
Túto skutočnosť znázorňuje nasledovný obrázok, kde

  • proces HI využíva Automatické spojenie napríklad pri práci s tabuľkami.
  • Script 1 sa pripája na tabuľku akciou DB_CONNECT bez určenia Spojenia, preto všetky následné akcie DB_* budú vykonávané v rámci Automatického spojenia.
  • Script 2 vytvoril nové Spojenie. V rámci Spojenia vykonal akciu DB_CONNECT. Po vykonaní potrebných zmien v databáze tieto potvrdil akciou DB_TRANS_COMMIT a následne spojenie ukončí akciou DB_TRANS_CLOSE.
  • Script 3 používa pre prístup k databáze akcie SQL_*. V tomto prípade je databáza určená prostredníctvom tzv. connection stringu a preto proces D2000 DBManager vytvára nové Spojenie. Ak sa v connection stringu nachádza kľúčové slovo ACD (Auto Commit Disable), Spojenie je v transakčnom režime a je nutné používať SQL príkaz COMMIT.
Write a comment…