firebird i triggery
Galdrian - 13-04-2007 00:03
firebird i triggery
Czy w Firebird'zie można wyciągnąć w triggerze informację o nazwie tabeli na rzecz której został on wywołany? Jeśli tak, to w jaki sposób?
Chodzi mi o to, że chce aby triggery wrzucały do do wspólnej tabeli informację o tym jaka tabela i jaką operacją została zmodyfikowana.
To dość pilne, więc byłbym bardzo wdzięczny za wszelaką pomoc.
Pozdrawiam! Galdrian
=?ISO-8859-2?Q?Tomek_Dzi=EAcio=B3?= - 14-04-2007 00:06
Galdrian napisał(a): > Czy w Firebird'zie można wyciągnąć w triggerze informację o nazwie > tabeli na rzecz której został on wywołany? Jeśli tak, to w jaki > sposób? > > Chodzi mi o to, że chce aby triggery wrzucały do do wspólnej tabeli > informację o tym jaka tabela i jaką operacją została zmodyfikowana. > > To dość pilne, więc byłbym bardzo wdzięczny za wszelaką pomoc.
O ile pamięć mnie nie myli to nie da się jednego triggera podpiąć pod dwie tabele. Więc nie ma potrzeby udostępniania w triggerze informacji o tabeli dla której został aktywowany, bo to i tak z góry wiadomo.
Tomek
Galdrian - 14-04-2007 00:06
On 13 Kwi, 07:46, Tomek Dzięcioł <b...@adresu.com> wrote: > Galdrian napisał(a): > > > Czy w Firebird'zie można wyciągnąć w triggerze informację o nazwie > > tabeli na rzecz której został on wywołany? Jeśli tak, to w jaki > > sposób? > > > Chodzi mi o to, że chce aby triggery wrzucały do do wspólnej tabeli > > informację o tym jaka tabela i jaką operacją została zmodyfikowana. > > > To dość pilne, więc byłbym bardzo wdzięczny za wszelaką pomoc. > > O ile pamięć mnie nie myli to nie da się jednego triggera podpiąć pod > dwie tabele. Więc nie ma potrzeby udostępniania w triggerze informacji o > tabeli dla której został aktywowany, bo to i tak z góry wiadomo. > > Tomek
Trigger jest przypięty do jednej tabeli, a do drugiej robi inserta z informacją o nazwie tabeli, jaka była modyfikowana i z numerem wiersza i rodzajem modyfikacji. Zależy mi na tym, żeby skrypt triggera był uniwersalny i żeby nie było go trzeba uzupełniać o nazwę tabeli do której go przypisyją.
Kwestia jest taka, że ma być X trigger'ów o takiej samej zawartości podpiętych do X różnych tabel i w razie ich modyfikacji treiggery te będą robić inserta do jednej wspólnej (X+1) tabeli ze wszystkimi mi potrzebnymi informacjami, tj. nazwa modyfikowanej tabeli, numer modyfikowanego wiersza i rodzaj modyfikacji.
Tomek - 14-04-2007 00:06
Galdrian napisał(a): > Kwestia jest taka, że ma być X trigger'ów o takiej samej zawartości > podpiętych do X różnych tabel i w razie ich modyfikacji treiggery te > będą robić inserta do jednej wspólnej (X+1) tabeli ze wszystkimi mi > potrzebnymi informacjami, tj. nazwa modyfikowanej tabeli, numer > modyfikowanego wiersza i rodzaj modyfikacji.
To napisz procedurę, która poprzez parametry będzie otrzymywała dane do zapisu i będzie wykonywała stosowny insert do bazy. W triggerach wywołuj procedurę przekazując jej między innymi nazwę tabeli. Od jawnego podawania nazwy tabeli w triggerze nie uciekniesz...
-- Tomek Dzięcioł
Galdrian - 14-04-2007 00:06
> To napisz procedurę, która poprzez parametry będzie otrzymywała dane do > zapisu i będzie wykonywała stosowny insert do bazy. W triggerach wywołuj > procedurę przekazując jej między innymi nazwę tabeli. Od jawnego > podawania nazwy tabeli w triggerze nie uciekniesz... > > -- > Tomek Dzięcioł
No właśnie tu jest problem. W PostgreSQL da się od tego uciec, bo zmienna TG_RELNAME przechowuje dla wywołania danego triggera nazwę tabeli na rzecz której został wywołany. Jeśli nie ma podobnego rozwiązania w Firebir'dzie, to faktycznie nie pozostaje mi nic innego, jak sparametryzowana procedura, ale tego wolałbym uniknąć.
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Firebird - zmiana NULL na NOT NULL
[firebird] Czym =?ISO-8859-2?Q?zast=B1pi=E6_postgresowy_inte?==?ISO-8859-2?Q?rval_=3F?=
Insert do tabeli danymi z innej tabeli Firebird
Insert do tabeli z danych innej tabeli plus dodatkowa wartośćpola (Firebird)
firebird - dostep do roznych baz na podstawie nazwy usera,hasla i adresu IP
=?iso-8859-2?q?Konfiguracja_Firebirda_pod_k=B1tem_wykorzystan ia_pami=EAci?=
=?ISO-8859-2?Q?[firebird]_gdzie_si=EA_podzia=B3y_polskie_literki?=
Re: [Firebird] BDE problem z zapisem konfiguracji pod Windows Vista
=?iso-8859-2?q?[firebird]_-_jak_zastapi=E6_pole_longtext_=3F?=
Firebird - zarzucanie =?iso-8859-2?q?pami=EAci?= RAM
zanotowane.pldoc.pisz.plpdf.pisz.plnatalia97.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|