ďťż
 
[FIREBIRD] - trigger i dane z zapytania ďťż
 
[FIREBIRD] - trigger i dane z zapytania
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[FIREBIRD] - trigger i dane z zapytania



jarudzik@wp.pl - 25-01-2007 00:01
[FIREBIRD] - trigger i dane z zapytania
  Witam

Mam konkretny problem

Sa tabele:

CREATE TABLE ABC (
ID_ABC BIGINT NOT NULL,
A VARCHAR(255),
B VARCHAR(255),
C VARCHAR(255),
);

oraz

CREATE TABLE HISTORY (
ID_HISTORY BIGINT NOT NULL,
ACTION_ID BIGINT NOT NULL,
ACTION_TABLE VARCHAR(255),
ACTION_DATE TIMESTAMP NOT NULL,
ACTION_VALUE VARCHAR(255),
);

Aby miec podgląd na historie zmian w tabeli ABC zakładam trigger

CREATE TRIGGER TR_ABC FOR ABC
ACTIVE AFTER INSERT POSITION 1
AS
declare variable ACTION_TABLE varchar(255);'
declare variable ACTION_VALUE varchar(255);
BEGIN
INSERT INTO HISTORY (ACTION_ID,ACTION_TABLE,ACTION_DATE,ACTION_VALUE)
VALUES (NEW.ID,:P_TABLE_NAME,CURRENT_TIMESTAMP,'ABC') ;
END

Chodzi o to aby wstawic w kolumne action_value tylko wartosci podane w
insert
oddzielone jakmis separatorem np ";".

Z gory dzieki.
Pozdrawiam
Rafał





sg - 25-01-2007 00:01

  Dnia 24-01-2007 o 13:35:42 <jarudzik@wp.pl> napisał(a):

> Witam
>
> Mam konkretny problem
>
> Sa tabele:
>
> CREATE TABLE ABC (
> ID_ABC BIGINT NOT NULL,
> A VARCHAR(255),
> B VARCHAR(255),
> C VARCHAR(255),
> );
>
> oraz
>
> CREATE TABLE HISTORY (
> ID_HISTORY BIGINT NOT NULL,
> ACTION_ID BIGINT NOT NULL,
> ACTION_TABLE VARCHAR(255),
> ACTION_DATE TIMESTAMP NOT NULL,
> ACTION_VALUE VARCHAR(255),
> );
>
> Aby miec podgląd na historie zmian w tabeli ABC zakładam trigger
>
> CREATE TRIGGER TR_ABC FOR ABC
> ACTIVE AFTER INSERT POSITION 1
> AS
> declare variable ACTION_TABLE varchar(255);'
> declare variable ACTION_VALUE varchar(255);
> BEGIN
> INSERT INTO HISTORY (ACTION_ID,ACTION_TABLE,ACTION_DATE,ACTION_VALUE)
> VALUES (NEW.ID,:P_TABLE_NAME,CURRENT_TIMESTAMP,'ABC') ;
> END
>
> Chodzi o to aby wstawic w kolumne action_value tylko wartosci podane w
> insert
> oddzielone jakmis separatorem np ";".
>
> Z gory dzieki.
> Pozdrawiam
> Rafał
>

Może tak?

----------------------------------------------------------------
CREATE TRIGGER TR_ABC FOR ABC
ACTIVE AFTER INSERT POSITION 1
AS
declare variable ACTION_TABLE varchar(255);
declare variable ACTION_VALUE varchar(255);
BEGIN
INSERT INTO HISTORY (ACTION_ID,ACTION_TABLE,ACTION_DATE,ACTION_VALUE)
VALUES (NEW.ID,:P_TABLE_NAME,CURRENT_TIMESTAMP, NEW.A || ';' || NEW.B ||
';' || NEW.C ) ;
END
----------------------------------------------------------------




jarudzik@wp.pl - 26-01-2007 00:03

 
> ----------------------------------------------------------------
> CREATE TRIGGER TR_ABC FOR ABC
> ACTIVE AFTER INSERT POSITION 1
> AS
> declare variable ACTION_TABLE varchar(255);
> declare variable ACTION_VALUE varchar(255);
> BEGIN
> INSERT INTO HISTORY (ACTION_ID,ACTION_TABLE,ACTION_DATE,ACTION_VALUE)
> VALUES (NEW.ID,:P_TABLE_NAME,CURRENT_TIMESTAMP, NEW.A || ';' || NEW.B ||
> ';' || NEW.C ) ;
> END
> -----------------------------------------------------------------

Dzieki wielki działa
ale
czy to mozna jakos zautomatyzowac ?
wrzucic w jaks petle
cos w stylu
foreach (NEW)
zmienna .=NEW.";"

??
Pozdrawiam
Rafał
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?= =?ISO-8859-2?Q?Narz=EAdzie_do_budowania_zapyta=F1_SQL=2C?==?I SO-8859-2?Q?_PL/PgSQL=2C_PL/SQL=2C_T-SQL?= [ms sql] =?ISO-8859-2?Q?wy=B6wietlenie_pierwszych_5_rekord?==?ISO-8859-2?Q?=F3w_z_zapytania_=3F_odpowiednik_ROWNUM_w_o?== ?ISO-8859-2?Q?raclu_dla_MS_SQL=27a?= phpMyAdmin zadaje =?ISO-8859-2?Q?z=B3e_zapytania=2E=2E=2E_Dl?==?ISO-8859-2?Q?aczego=3F?= [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= [mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?= [oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?= [mysql/php] jak =?ISO-8859-2?Q?zliczy=E6_ilo=B6=E6_unikalnyc?==?ISO-8859-2?Q?h_rekord=F3w_w_jednym_zapytaniu=3F?= [MySQL] Zapytanie z =?ISO-8859-2?Q?dw=F3ch_tabel_na_raz_?==?ISO-8859-2?Q?i_grupowanie_po_wsp=F3lnym_polu=2E_Jak_=3F?= mecze sie i mecze i nic - zapytanie czesciowe
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • atanvarne633.opx.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com