|
|
| Systémový jazyk a znaková sada | Databáze | Zkompaktnění databáze |
Databáze obsahuje několik systémových tabulek, v nichž jsou uloženy například definice ostatních tabulek, definice dalších objektů, seznam uživatelů a další důležité údaje.
Nedoporučujeme pracovat přímo s těmito tabulkami. Pro vytváření, modifikování a mazání objektů používejte buď interaktivní vývojové prostředí nebo příslušné API funkce nebo SQL příkazy. Struktura systémových tabulek se může v dalších verzích 602SQL měnit.
Mezi systémové tabulky patří:
| OBJTAB | tabulka objektů všech aplikací (dotazy, procedury, role apod.) - přístupná pro čtení i zápis |
| TABTAB | tabulka tabulek všech aplikací - pouze pro čtení |
| USERTAB | tabulka uživatelů a skupin - pouze pro čtení |
Přehled vybraných sloupců systémových tabulek:
| Sloupec | OBJTAB | TABTAB | USERTAB | Typ | Význam |
| OBJ_NAME | ano | -- | -- | CHAR(31) | jméno objektu |
| TAB_NAME | -- | ano | -- | CHAR(31) | jméno tabulky |
| LOGNAME | -- | -- | ano | CHAR(31) | jméno uživatele nebo skupiny |
| CATEGORY | ano | ano | ano | CHAR | kategorie objektu |
| APL_UUID | ano | ano | -- | BINARY(12) | identifikace aplikace |
| USR_UUID | -- | -- | ano | BINARY(12) | identifikace uživatele (skupiny) |
| DEFIN | ano | ano | -- | BLOB | textová definice objektu |
| FOLDER_NAME | ano | ano | -- | CHAR(31) | jméno folderu (složky) na řídicím panelu |
| LAST_MODIF | ano | ano | -- | TIMESTAMP | datum a čas vytvoření nebo poslední změny |
Příklad: zjistit jména uživatelů databáze
Řešení: položte dotaz
SELECT logname FROM Usertab WHERE (Usertab.category=Chr(CATEG_USER))
Příklad: vybrat objekty patřící aplikaci "APLIKACE1"
Řešení: položte postupně dva dotazy
SELECT T2.obj_name,Ord(T2.category) FROM Objtab T1, Objtab T2 WHERE T1.apl_uuid=T2.apl_uuid AND (T1.obj_name="APLIKACE1" AND Ord(T1.category)=CATEG_APPL)
a
SELECT Tabtab.tab_name FROM Objtab, Tabtab WHERE Objtab. apl_uuid =Tabtab. apl_uuid AND Objtab.obj_name="APLIKACE1"
Tyto konstanty označují jednotlivé kategorie objektů 602SQL. Jsou to konstanty typu Integer:
| kategorie objektů aplikace | ||
| CATEG_TABLE | tabulka | 0 |
| CATEG_CURSOR | dotaz | 3 |
| CATEG_PGMSRC | popis přenosu dat | 4 |
| CATEG_APPL | aplikace | 7 |
| CATEG_ROLE | role v aplikaci | 10 |
| CATEG_DRAWING | diagram | 13 |
| CATEG_PROC | uložená procedura | 16 |
| CATEG_TRIGGER | trigger | 17 |
| CATEG_FOLDER | složka (folder) | 19 |
| CATEG_SEQ | sekvence | 20 |
| CATEG_INFO | fulltext | 21 |
| CATEG_DOMAIN | doména | 22 |
| CATEG_STSH | stylesheet | 23 |
| CATEG_XMLFORM | XML formulář | 24 |
| kategorie objektů databáze | ||
| CATEG_USER | uživatel | 1 |
| CATEG_GROUP | skupina uživatelů | 9 |
POZOR! Sloupec CATEGORY v systémových tabulkách je typu Char, proto při porovnávání nezapomeňte provést konverzi funkcemi Ord nebo Chr.
| Systémový jazyk a znaková sada | Databáze | Zkompaktnění databáze |