Editácia všetkých objektov v procese D2000 CNF prebieha v konfiguračnom okne, ktorého určitá časť obsahu je spoločná pre všetky editovateľné objekty a časť závisí od typu editovaného objektu.

Konfiguračné okno objektov typu Tabuľka pozostáva z viacerých častí (stránok), ktoré obsahujú príbuzné parametre.

Základné vlastnosti
Logické skupiny
Tabuľka

Základné vlastnosti


Popis

Textový reťazec popisujúci danú tabuľku. Maximálny počet znakov: 128.
Možnosť použiť Slovník (pre otvorenie stlačte CTRL+L).

Tabuľka


Typ štruktúry

Definovanie objektu typu Definícia štruktúry
Objekt typu Definícia štruktúry, ktorým je určený typ štruktúry. Ak je Tabuľka použitá, nie je typ štruktúry možné zmeniť.

Tlačidlo Nová umožňuje vytvoriť novú definíciu štruktúry podľa definície tabuľky v databáze. Názov novej definície štruktúry je odvodený od názvu objektu DB Tabuľka v systéme D2000.
(Pre vytváranie novej definície je potrebné zabezpečiť, aby bol spustený príslušný systémový proces D2000 DBManager.)

Možné stavy pri vytváraní novej definície štruktúry


Konverzná tabuľka typov

D2000 typyODBCOCI
BOOLSQL_BIT 
INTSQL_INTEGER, SQL_NUMERIC, SQL_BIGINT, SQL_SMALLINT, SQL_TINYINTSQL_INTEGER, SQL_NUMERIC, SQL_BIGINT, SQL_SMALLINT, SQL_TINYINT TYPE_NUMBER, TYPE_INTEGER, TYPE_UNSIGNED8, TYPE_UNSIGNED16, TYPE_UNSIGNED32, TYPE_SIGNED8, TYPE_SIGNED16, TYPE_SIGNED32, TYPE_SMALLINT
REALSQL_DECIMAL, SQL_FLOAT, SQL_REAL, SQL_DOUBLE, SQL_NUMERICTYPE_FLOAT, TYPE_DECIMAL, TYPE_REAL, TYPE_DOUBLE, TYPE_NUMBER
TEXTSQL_CHAR, SQL_VARCHAR, SQL_WCHAR, SQL_WVARCHARTYPE_VARCHAR, TYPE_VARCHAR2, TYPE_CHAR
TIMESQL_DATE, SQL_TIME, SQL_TIMESTAMPTYPE_DATE, TYPE_TIME, TYPE_TIME_TZ, TYPE_TIMESTAMP, TYPE_TIMESTAMP_TZ, TYPE_INTERVAL_YM, TYPE_INTERVAL_DS, TYPE_TIMESTAMP_LTZ

Mapovanie stĺpcov medzi tabuľkou v databáze a stĺpcami v definícii štruktúry prebieha na základe mena. Pri generovaní SQL príkazov D2000 DBManager štandardne uzatvára mená do úvodzoviek. V určitých prípadoch toto nie je žiadaná činnosť, preto proces D2000 DBManager pozná parameter /NQ.

Prístup

Riadenie maximálnej úrovne prístupu zo systému D2000 k databáze.

Tabuľka

Meno tabuľky v databáze. Meno tabuľky môže byť jednoduché (napr. table1) alebo zložené. Zložené meno tabuľky sa skladá z mena užívateľa a z jednoduchého mena tabuľky, ktoré sú oddelené bodkou (napr. user1.table1). Zložené mená podporujú napr. MsSql, Oracle a Sybase, jednoduché vyžaduje napr. databáza Microsoft Access a MySql. Pri práci s tabuľkou platia nasledovné pravidlá:


Poznámka: Názov tabuľky (vrátane užívateľa oddeleného bodkou) môže mať maximálne 64 znakov. Reálne obmedzenie dĺžky názvu tabuľky je dané príslušnou databázou.

Kľúč

Stĺpec (stĺpce), ktorý (ak nie je uvedené inak) je považovaný za kľúčový položku. Kľúčová položka je taká položka, ktorá musí (Unique) jednoznačne identifikovať riadok v databáze. Zoznam možných kľúčových položiek je zhodný s menami stĺpcov podľa Definície štruktúry. Parameter je nepovinný.

Nepovinný

Stĺpec (stĺpce), ktorý je považovaný za nepovinný. Nepovinný stĺpec je taký, ktorý nemusí existovať v databáze. Zoznam možných nepovinných stĺpcov je zhodný s menami stĺpcov podľa Definície štruktúry. Overiť existenciu povinných stĺpcov tabuľky v databáze (t.j. všetkých, ktoré neboli označené ako nepovinné) je možné cez Test objektu typu Tabuľka alebo cez Testuj tabuľky objektu typu Databáza.

Not Null

Stĺpec (stĺpce), ktorý je považovaný za NOT NULL.
NOT NULL stĺpec je taký, ktorého hodnota musí byť definovaná pred vkladaním alebo modifikáciou v databázovej tabuľke (operácie pre vkladanie alebo modifikáciu záznamov tabuliek). Zoznam možných NOT NULL stĺpcov je zhodný s menami stĺpcov podľa Definície štruktúry. V prípade, ak pred samotným výkonom operácie vkladania alebo modifikácie tabuliek, nájde pri týchto stĺpcoch nedefinované hodnoty, operácia sa predčasne ukončí s chybou. Vypíše všetky hodnoty, ktoré nevyhovujú NOT NULL podmienke, maximálne však 10 pre 1 stĺpec (to je rozdiel oproti tomu, čo vráti DB engine, lebo ten vracia iba prvý konfliktný stĺpec v prvom konfliktnom riadku).

Príklad chybovej hlášky, ktorú zobrazí DBManager:

%D2DBM-E-*** Error in con 1:
%D2DBM-E-con 1: DBS_INSERT : Column "column1" [row # 7], "column3" [row # 3 7 8], "column5" [row # 1 2 3 4 5 6 7 8 9 10 ...] in table "dba"."test_js_column_multi" cannot be NULL!

Export monitorovaný

Ak je voľba povolená, informácia o exporte dát z tejto tabuľky (zo zobrazovača Browser z procesu HI alebo schémy) bude zapísaná do monitorovacej databázy. Informácia obsahuje meno užívateľa, meno objektu typu tabuľka, WHERE podmienku, počet exportovaných riadkov a cieľ exportu (schránka resp. názov súboru)


Test

Tlačidlo umožňuje otestovať funkčnosť pripojenia na tabuľku. Pred testovaním je nutné stlačiť tlačidlo Ulož, pokiaľ boli zmenené parametre Typ štruktúry, Tabuľka alebo Prístup.
Testovanie vyžaduje spustený proces D2000 DBManager.

Počas testovania tabuľky, proces D2000 DBManager znova načíta definíciu tabuľky z SQL databázy pomocou ODBC funkcie SQLColumns. Túto vlastnosť možno využiť pri práci na online systéme, keď sa pridá stĺpec/stĺpce do tabuľky v SQL databáze (pri čom tieto stĺpce už predtým existovali v Definícii štruktúry v D2000) a je potrebné, aby proces D2000 DBManager znovu načítal definíciu tabuľky v SQL databáze, aby dokázal pracovať aj s pridaným stĺpcom/stĺpcami. Stlačením tlačidla Test sa znova načíta definícia tabuľky z SQL databázy a pri ďalšej práci už bude proces D2000 DBManager brať do úvahy aj pridaný stĺpec. Doteraz otvorené tabuľky (DB_CONNECT, PG_CONNECT) budú pracovať iba s pôvodnými stĺpcami (známymi v čase otvorenia tabuľky), novootvorené tabuľky už budú brať do úvahy aj pridaný stĺpec.
Alternatívou tohto postupu je reštart procesu D2000 DBManager. Ak sa pridáva stĺpec aj do Definície štruktúry v systéme D2000, proces D2000 DBManager si automaticky znovu načíta definíciu tabuľky v SQL databáze.
Pri úspešnom výsledku testu (ak bola tabuľka nájdená) proces D2000 CNF oznámi úspešný výsledok. Ak sa niektoré stĺpce definície štruktúry nenachádzajú v tabuľke v SQL databáze, vypíše varovanie, ktoré obsahuje zoznam nenájdených stĺpcov.
Ak sa stĺpec v tabuľke v SQL databáze nachádza ako textový stĺpec, ale v štruktúre je nadefinovaný ako iný typ, takisto sa vypíše varovanie (táto vlastnosť je implementované kvôli Oracle databáze, ktorá - pokiaľ sa v D2000 definuje stĺpec napr. ako celočíselný a v databáze je napr. VARCHAR - pri stránkovom prechádzaní niektoré stránky zobrazí a niektoré nie).
Ak sa nejaké stĺpce tabuľky, ktoré nie sú definované pri konfigurácii ako nepovinné, v tabuľke nenachádzajú, taktiež sa vypíše varovanie v podobe zoznamu týchto stĺpcov.


Poznámka: Pri použití dbmanager.exe (ODBC verzia) dopadne test neúspešne, ak prvý riadok načítaný z tabuľky v SQL databáze obsahuje textový stĺpec, ktorý sa nedá skonvertovať na netextový typ. Problém je v ODBC ovládači (aktuálna verzia Oracle ODBC 9.02.00.65). Ak je prvý načítaný riadok korektný (resp. ak tabuľka neobsahuje žiaden riadok), chybové hlásenie sa zobrazí korektne.
Pri použití dbmanager_ora.exe (OCI verzia) tento problém nevzniká, pretože D2000 DBManager na rozdiel od Oracle ODBC ovládača má korektne ošetrené chybové stavy, ktoré generuje OCI vrstva.

SQL definícia

Tlačidlo Kopíruj do clipboardu, v závislosti od typu prístupu k databáze, uloží do clipboardu príslušnú Oracle SQL definíciu. Ak je typ prístupu nastavený na čítanie, uloží sa definícia VIEW, ktorá obsahuje stĺpce z "Definície štruktúry". V opačnom prípade sa doň vloží SQL príkaz na vytvorenie tabuľky s príslušným menom, stĺpcami a primárnym kľúčom.

Do SQL dopytu pre vytvorenie VIEW je potrebné manuálne vložiť jeho názov a SELECT, ktorý zodpovedá poradiu stĺpcov.


CREATE OR REPLACE VIEW VW_"Názov tabuľky" (
...
názvy stĺpcov 
...
) AS 

Dopyt na vytvorenie tabuľky nie je potrebné dopĺňať. Jeho syntax bude nasledovná.

CREATE TABLE "Názov tabuľky" (
...
názvy stĺpcov, premapované D2000 typy, NULL/NOT NULL
...
)

ALTER TABLE  "Názov tabuľky"
  ADD CONSTRAINT  pk_"Názov tabuľky" PRIMARY KEY (
    názvy stĺpcov, ktoré majú vybraté pole "Kľúč" 
 )

Mapovanie D2000 typov do Oracle databázových typov je uvedené v nasledujúcej tabuľke.
 

D2000Oracle
logickýNUMBER(1,0)
celočíselnýNUMBER
analógovýBINARY_DOUBLE
absolútny časDATE
relatívny časBINARY_DOUBLE
textovýVARCHAR2(256)

Časová hĺbka - stĺpec

Meno stĺpca typu absolútny čas v databáze. Ak je uvedený, príslušný proces D2000 DBManager bude autonómne mazať z databázy riadky, ktorých hodnota v príslušnom stĺpci je staršia ako prípustná časová hĺbka.

Časová hĺbka - Mesiace, Dni, Hodiny

Časová hĺbka.

Databázy a Databázové tabuľky