_sqp_trace

SQL

function _sqp_trace(IN situation INTEGER, IN username CHAR(31), IN objectname CHAR(63), IN logname CHAR(31), IN kontext_extent INTEGER) RETURNS BOOLEAN;

Parametry

situation Φφslo situace, jejφ₧ logovßnφ se mß ovlivnit
username jmΘno u₧ivatele, jeho₧ akce se majφ logovat, je-li prßzdnΘ, mφnφ se vÜichni u₧ivatele
objectname jmΘno tabulky, k nφ₧ se vztahuje po₧adavek na logovßnφ
logname jmΘno logu, do n∞ho₧ se loguje, je-li prßzdnΘ, mφnφ se standardnφ log
kontext_extent urΦuje rozsah informacφ v logu, p°φpadn∞ vypφnß logovßnφ

Od verze

7.0

Popis

Funkce za°adφ nov² po₧adavek na logovßnφ urΦitΘ situace nebo zm∞nφ Φi zruÜφ platn² po₧adavek na logovßnφ.

╚φsla situacφ v parametru situation jsou oznaΦena konstantami popsan²mi zde.

Pro situace vztahujφcφ se k manipulaci s daty v tabulkßch uvßdφ parametr objectname jmΘno tabulky, kterΘ se logovßnφ t²kß. JmΘno lze prefixovat jmΘnem schΘmatu (aplikace), pokud prefix nenφ uveden, mφnφ se prßv∞ vybranΘ schΘma. Tabulka musφ existovat ji₧ b∞hem volßnφ tΘto funkce.

Pokud je jmΘno logu logname neprßzdnΘ, pak musφ oznaΦovat ji₧ existujφcφ log, nap°φklad vytvo°en² d°φv∞jÜφm volßnφm funkce _sqp_define_log.

Parametr username musφ oznaΦovat existujφcφ u₧ivatelskΘ jmΘno. Nelze v n∞m pou₧φt jmΘno u₧ivatele, kter² bude teprve zalo₧en.

Hodnoty parametru kontext_extent urΦujφ mφru vypisovan²ch informacφ o kontextu, v n∞m₧ situace nastala. Existujφ t°i stupn∞ kontextu:

Kontext v∞tÜφ ne₧ 1 mß smysl zejmΘna p°i logovßnφ u₧ivatelsk²ch chyb, SQL p°φkaz∙ a manipulacφ s tabulkou. Nastavenφm kontextu 0 se logovßnφ vypφnß.

Nastavenφ m∙₧e provßd∞t jen Provoznφ sprßvce databßze, po₧adavek na trasovßnφ Φtenφ a zßpisu dat jen BezpeΦnostnφ sprßvce databßze - viz Administrovßnφ SQL serveru.

Persistence po₧adavk∙

Po vypnutφ a op∞tovnΘm zapnutφ serveru se zachovajφ pouze po₧adavky na logovßnφ do zßkladnφho logu serveru, bez vazby na jmΘno u₧ivatele nebo jmΘno tabulky.

Hodnota funkce

Funkce vracφ TRUE, pokud ·sp∞Ün∞ za°adila nebo zruÜila zadan² po₧adavek na logovßnφ. Vracφ FALSE p°i chyb∞, kterß m∙₧e b²t zp∙sobena zadßnφm jmΘna neexistujφcφho u₧ivatele nebo objektu.

P°φklad:

V procedu°e _ON_SERVER_START m∙₧ete pro v²voj aplikacφ zapnout podrobnΘ trasovßnφ do zvlßÜtnφho logu, do n∞ho₧ mß p°φstup jen sprßvce, a nastavenφ b∞₧nΘho logu nap°. takto:

PROCEDURE _ON_SERVER_START();
BEGIN
  CALL Log_write("nastaven debuglog");

  CALL _sqp_define_log('debuglog','c:\pom\debuglog.log','%d %t %s %a %u %m');
  CALL _sqp_trace(TRACE_SERVER_FAILURE, '', '', 'debuglog', 3);
  CALL _sqp_trace(TRACE_START_STOP,     '', '', 'debuglog', 3);
  CALL _sqp_trace(TRACE_LOGIN,          '', '', 'debuglog', 3);
  CALL _sqp_trace(TRACE_SERVER_INFO,    '', '', 'debuglog', 3);
  CALL _sqp_trace(TRACE_USER_ERROR,     '', '', 'debuglog', 3);
  CALL _sqp_trace(TRACE_SQL,            '', '', 'debuglog', 3);
  CALL _sqp_trace(TRACE_CURSOR,         '', '', 'debuglog', 3);
  CALL _sqp_trace(TRACE_LOG_WRITE,      '', '', 'debuglog', 3);
  CALL _sqp_trace(TRACE_PROCEDURE_CALL, '', '', 'debuglog', 3);
  CALL _sqp_trace(TRACE_TRIGGER_EXEC,   '', '', 'debuglog', 3);

  CALL Log_write("nastaven b∞₧n² log");
  CALL _sqp_trace(TRACE_SERVER_FAILURE, '', '', '', 1);
  CALL _sqp_trace(TRACE_START_STOP,     '', '', '', 1);
  CALL _sqp_trace(TRACE_USER_ERROR,     '', '', '', 1);
  CALL _sqp_trace(TRACE_LOG_WRITE,      '', '', '', 1);
  CALL _sqp_trace(TRACE_REPLICATION,    '', '', '', 0);
  CALL _sqp_trace(TRACE_DIRECT_IP,      '', '', '', 0);
  CALL _sqp_trace(TRACE_REPLIC_MAIL,    '', '', '', 0);
  CALL _sqp_trace(TRACE_REPLIC_COPY,    '', '', '', 0);
  CALL _sqp_trace(TRACE_REPL_CONFLICT,  '', '', '', 0);
END

Viz