V systΘmu jsou r∙znΘ slu₧ebnφ tabulky v nich₧ jsou ulo₧eny definice vÜech tabulek, definice vÜech objekt∙, definovanφ u₧ivatelΘ a dalÜφ d∙le₧itΘ ·daje.
NedoporuΦujeme pracovat p°φmo s t∞mito tabulkami. Pro vytvß°enφ resp. mazßnφ objekt∙ pou₧φvejte v²vojovΘ prost°edφ nebo p°φsluÜnΘ funkce jazyka nebo SQL p°φkazy.
V urΦit²ch konkrΘtnφch p°φpadech vÜak lze n∞kterΘ systΘmovΘ tabulky pou₧φt.
OBJTAB | tabulka objekt∙ vÜech aplikacφ (pohledy, dotazy role apod.) - pro Φtenφ i zßpis |
TABTAB | tabulka tabulek vÜech aplikacφ - pouze pro Φtenφ |
USERTAB | tabulka u₧ivatel∙ a skupin - pouze pro Φtenφ |
N∞kterΘ sloupce systΘmov²ch tabulek, kterΘ lze pou₧φt
JmΘno | OBJTAB | TABTAB | USERTAB | Typ | V²znam |
TAB_NAME | -- | ano | -- | CSIString dΘlky 31 znak∙ | jmΘno tabulky |
OBJ_NAME | ano | -- | -- | CSIString dΘlky 31 znak∙ | jmΘno objektu |
LOGNAME | -- | -- | ano | CSIString dΘlky 31 znak∙ | jmΘno u₧ivatele nebo skupiny |
CATEGORY | ano | ano | ano | Char | kategorie objektu |
APL_UUID | ano | ano | -- | Binary dΘlky 12 znak∙ | identifikace aplikace |
USR_UUID | -- | -- | ano | Binary dΘlky 12 znak∙ | identifikace u₧ivatele (skupiny) |
DEFIN | ano | ano | -- | Nospec (OLE) | textovß definice objektu |
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"
P°φklad: zjistit ID p°ihlßÜenΘho u₧ivatele
╪eÜenφ:
jmeno := Who_am_I;
if jmeno = "" then jmeno := "ANONYMOUS";
if Find_object(jmeno,CATEG_USER, usernum) then Signalize;
userid := Usertab[usernum].usr_uuid;
P°φklad: naΦφst do aplikace obrßzek
╪eÜenφ:
procedure CopyFile(tb:ttablenum; rec, atr, index, handle:integer; recode:integer);
external "WBPREZEN.DLL" name "old_copy_from_file";
function Open(var filename:string; par : integer) : integer;
external "KERNEL32" name "_lopen";
function CloseF(par : integer) : integer;
external "KERNEL32" name "_lclose";
table
OBJTAB;
const
def_atr = 6; // WinBase od verze 5.0
var
hfile : integer;
ss : string[200];
objnum : short;
begin
ss := "*.bmp";
if select_file(0,ss) then begin
hfile := Open(ss,0);
if not Find_object("newpicture",CATEG_PICT,objnum) then
if Delete(objtab,objnum) then Signalize;
if Insert_object("newpict2",CATEG_PICT,objnum) then Signalize else begin
CopyFile(Objtab,objnum,def_atr,-1,hfile,0);
Relist_objects;
end;
CloseF(hfile);
end;
end.
Viz takΘ: | Vnit°nφ programovacφ jazyk |