Aktualizacja danych za pomoca zapytania wielokolumnowego + firebird

0

Witam probuje zrobic trigera, ktory sprawdzi mi pewne dane i zrobi update dwoch wartosci za pomoca jednego zapytania. To moj przyklad:

AS
begin
if (((new.licznik is null) or (new.licznik=0) or (new.mianownik is null) or (new.mianownik=0)) and new.idstanu>0) then
update oproc set (Licznik,mianownik)=(select p.trybods_licz,p.trybods from stan s,plankt p where s.konto=p.nr_kt and s.idstan=idstanu) where idoproc=new.idoproc;
end

Jest to mozna by rzec ksiazkowo napisany przyklad, lecz na firebirdzie nie chce sie to skompilowac (Parsing error!). Czy ktos wie jak to dopasowac do firebirda 2.5. Bede wdzieczny za jakie k

0

RTFM!!! http://www.firebirdsql.org/refdocs/langrefupd21-update.html

chyba najbardziej łopatologicznie:

update tab 
set col1 = val1, col2= val2, ..., colN = valN
where ...
0

:) Chyba nie zrozumiales problemu, chce zalatwic updatem 2 watosci jednym podzapytaniem, ale dzieki za zainteresowanie

0
svenson napisał(a)

Witam probuje zrobic trigera, ktory sprawdzi mi pewne dane i zrobi update dwoch wartosci za pomoca jednego zapytania. To moj przyklad:

AS
begin
if (((new.licznik is null) or (new.licznik=0) or (new.mianownik is null) or (new.mianownik=0)) and new.idstanu>0) then
update oproc set (Licznik,mianownik)=(select p.trybods_licz,p.trybods from stan s,plankt p where s.konto=p.nr_kt and s.idstan=idstanu) where idoproc=new.idoproc;
end

Jest to mozna by rzec ksiazkowo napisany przyklad, lecz na firebirdzie nie chce sie to skompilowac (Parsing error!). Czy ktos wie jak to dopasowac do firebirda 2.5. Bede wdzieczny za jakie k

Robiłem swego czasu na Firebird(2.0 i 2.1) i tego typu rzeczy robiło się poprzez zmienne, deklarowane w trigerze. Wyglądało to mniej więcej tak(nie mam jak sprawdzić, bo ostatnio nie klepałem triggerów pod Firebird).

 
AS BEGIN
IF ( COALESCE( new.licznik, 0 ) = 0 ) or ( COALESCE( new.mianownik, 0 ) = 0 ) THEN
   BEGIN
      SELECT p.trybods_licz, p.trybods from stan s, plankt p
      WHERE s.konto = p.rn_kt AND s.idstan=idstan
      INTO VR_LICZNIK, VR_MIANOWNIK;
      new.licznik = :VR_LICZNIK;
      new.mainownik = :VR_MIANOWNIK;
   END
END

1 użytkowników online, w tym zalogowanych: 0, gości: 1