Uživatelské nástroje

Nástroje pro tento web


techdoc:multidb

Multidatabázové prostředí

 aa Jedna aplikace ESO9 pracuje standardně s jednou aplikační databází. V některých případech může být užitečné mít možnost z jedné aplikace pořizovat data do jiné databáze/-í (např. pro firmy ve skupině či holdingu lze pořizovat došlé doklady centrálně v jedné aplikaci bez nutnosti přihlašovat se do více aplikací). V jedné stránce lze tak mít každou formu napojenou na jinou databázi. Napojení formy na jinou pracovní databázi se provádí parametrem:

<input type="hidden" name="ESO9DB" value="nazev_databaze">


Napojení formy na jinou pracovní databázi znamená zejména:

  • čtení dat do formy
  • zápis nových dat ve formě
  • editace stávajících dat ve formě
  • volání všech obchodních pravidel nad formou
  • volání všech číselníků nad formou
  • volání uživatelských akcí nad formou
  • tisk sestav z formy

Při stisku libovolného odkazu z takto modifikovaného formuláře se i do následujícího formuláře či sestavy přenáší stejný parametr, není-li v cílovém formuláři tímto parametrem řečeno jinak.
Uživatel se v jiné pracovní databázi ověřuje podle svého kódu z aplikační databáze. Pokud je tedy v aplikaci přihlášen (kterýmkoli ze tří způsobů podporovaných v ESO9) např. pod uživatelem s kódem klient, bude se v jiné pracovní databázi hledat uživatel se stejným kódem. Pokud nebude nalezen, dojde při prvním otevření takové formy k chybě Uživatel nebyl v databázi nazev_databaze nalezen. Pokud bude nalezen, použije se jeho ID a kompletní sada UP parametrů pro práci ve formě.
Další možností je parametr ESO9DB dále parametrizovat v syntaxi:

<input type="hidden" name="ESO9DB" value="%MF_DBNAME%">


Hodnota takového parametru se pak hledá v datovém zdroji zdrojové formy. Lze si tak dynamicky přepínat pracovní databázi u vybraných forem. Zdrojová forma pak může vypadat např. takto:

<form method="POST" name="DBS">
  <input type="hidden" name="NavBar" value="None">
  <input type="hidden" name="VIEWNAME" value="QESO9DB">
  <input type="hidden" name="VIEW" value="SELECT 1 as ID, 'eso9start' as MF_DBNAME">
  <table border="0" cellpadding="0" cellspacing="1" width="100%">
    <caption>Výběr databáze</caption>
    <tr>
      <td><label for="fpDBName">Aplikační databáze</label></td>
      <td>
        <select name="MF_DBNAME" size="1" id="fpDBName" Title="Rychlý výběr pracovní databáze">
          <option value="eso9start">ESO9Start</option>
          <option value="eso9start2">ESO9Start 2</option>
          <option value="eso9start3">ESO9Start 3</option>
        </select>
      </td>
    </tr>
  </table>
</form>


Pokud není hodnota takového parametru nalezena v datovém zdroji zdrojové formy, hledá se v jejích parametrech.
Pokud stránka obsahuje další formy, není třeba v nich parametr ESO9DB explicitně uvádět, automaticky se přebírá ze zdrojové formy. Je tím zajištěna referenční integrita, tj. všechny datové parametry z více forem se musí vztahovat k datům ve stejné databázi.
Pokud je změna hodnoty položky MF_DBNAME navázána na pohledový FChange, který má na rozhraní položku @REQUERYSTATE, provede se po jeho zavolání obnova dat ve všech závislých formách a tím dojde k načtení datového zdroje závislé formy z jiné pracovní databáze.

techdoc/multidb.txt · Poslední úprava: 08.02.2025 13:00 autor: 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki
DokuWiki Appliance - Powered by TurnKey Linux