K čemu v ArcSDE slouží funkce Is_Simple a Is_Versioned?

24. 5. 2019
  • Serverový GIS
  • Další

V případě aplikací třetích stran, které k datům v ArcSDE přistupují bez znalosti schématu geodatabáze, je zapotřebí nejprve ověřit, zda tabulka, na níž se dotazují, není verzovaná. Cílem je tedy ověřit, že stav prvků je uveden pouze v dané tabulce a pro dotazování není potřeba použít její multiversion view – náhled, který pro verzovanou třídu/tabulku vytváří pohled na data pro stav konkrétní verze, kdy změny mohou být nejen v samotné tabulce, ale i v A/D delta tabulkách.

Přesně k tomuto účelu můžete v ArcSDE geodatabázi využít pomocnou funkci Is_Versioned, která pro danou tabulku vrací řetězec značící, zda tabulka verzovaná je: "TRUE", nebo není: "FALSE" (případně "NOT REGISTERED" v případě že tabulka vůbec není v ArcSDE geodatabázi registrovaná).

Stejně tak je vhodné, aby aplikace, která může data v geodatabázi editovat, ověřila i to, že tabulka nepatří žádnému geodatabázovému objektu (třídě prvků/tabulce), který je součástí složitější geodatabázové funkcionality. Vyloučí se tak možnost, kdy by případný update mohl vést k nekonzistencím v datech. Aplikace třetích stran totiž nutně nemusí znát geodatabázovou logiku a funkcionalitu, a tedy nemusí vědět, jak případně upravit další navázané/pomocné tabulky.

Problém by mohl nastat např. při updatu tabulek které:

  •     mají anotace
  •     mají přílohy
  •     mají kótování
  •     mají povolený editor tracking
  •     jsou součástí geometrické sítě
  •     jsou součástí mozaikové datové sady
  •     jsou součástí network datasetu
  •     jsou součástí parcel fabric
  •     jsou součástí rastr katalogu
  •     jsou součástí raster datasetu
  •     jsou součástí relační třídy
  •     jsou součástí schematic datasetu
  •     jsou součástí terrain datasetu
  •     jsou součástí topologie  

Pro ověření, zda daná tabulka je součástí těchto složitějších ArcSDE geodatabázových struktur, je možné využít právě funkci Is_Simple

Pokud funkce pro danou tabulku vrací řetězec "FALSE", znamená to, že tabulka je součástí geodatabázové funkcionality. Pokud vrací řetězec "TRUE", značí to, že součástí geodatabázové funkcionality není. V případě, že tabulka vůbec není registrovaná s geodatabází, vrátí funkce řetězec "<jméno_tabulky> is not registered to the geodatabase".

Obě tyto funkce dávají aplikacím třetích stran (případně administrátorovi bez přístupu k ArcGIS) podstatnou informaci, jak s tabulkami v geodatabázi mají (resp. zda vůbec mohou) pomocí SQL zacházet.

Autor: Martin Král