ignatandrei:
B_gd_n[ ]Sahlean:
antonmaryan:
am nevoie sa realizez un trigger parametrizat (sa primeasca o valoarea transmisa de utilizator).
poate sa ma jute cineva?
Inserezi valoarea parametrului intr-o tabela cu structura: ParametriiDeclansator(IDParametru INT PRIMARY KEY, IDUtilizator INT NOT NULL, Valoare ...) si in declansator citesti valoarea parametrului si eventual stergi valoarea respectiva ...
Sunt chiar curios Bogdane ... Cum stie trigger-ul care este id de utilizator ca sa identifice parametrul din tabela ?
Ma gindesc la o aplicatie Web ... in care (aproape) toti folosesc acelasi string de conexiune ...
Folosesti functia USER_ID() in declansator pentru a determina utilizatorul curent in baza de date.
In ceea ce priveste aplicatiile web exista varianta cu autentificare Windows.
Pentru scenariul unor aplicatii web care se conecteaza la BD cu acelasi nume de utilizator poti folosi o tabela in care in locul câmpului IDUtilizator ai câmpul IDConexiune şi
[1] setezi valoarea parametrului pentru fiecare conexiune la BD folosind SET CONTEXT_INFO
si
[2] citesti din declansator apelând la câmpul
sysprocesses.context_info valoarea parametrului folosind conditia WHERE spid = @@spid unde variabila globala @@spid returneaza codul conexiunii curente.
Solutia aceasta tb. sa functioneze si atunci cand ai un set de conexiunii (pool) la baza de date, conexiuni care odată deschise sunt reutilizate ... bla, bla, bla ...