Keresés

Részletes keresés

Amartus Creative Commons License 2005.10.27 0 0 6
Kurzoros kérdésem lenne.
pl/Sql-ben a kurzor vizsgálatánál ezt lehet írni:
loop
fetch kursor into valami1 ,
valami2 ;

exit when kurzor%NOTFOUND;
történés;
end loop;

Na most, kerestem hasonlót postgre-ben de nem találtam.
Kérdésem, hogy hogyan lehet mysql-ben kurzort feldolgozni a fenntihez hasosnló módon?
Most kezdek ismerkedni a postgre-lel.
buxi1 Creative Commons License 2002.08.26 0 0 5
Szia!
A NEW es OLD cuccosok (Legalabbis az Oracle-ben) csak a sorszintu triggereknel ertelmezettek, tehat a deklaracioban a trigger feltetel ele be kell szurni a for each row-t, egyebkent nem fog muxeni.
Előzmény: csitti (-)
lamerka Creative Commons License 2002.08.25 0 0 4
Sziasztok!

Lehet, hogy nem ez a legalkalmasabb topik rá, hogy érdeklődjek, de hirtelen ez volt a legjobb ötletem.

A gépem indításakor elindul a surface scan is. Amiből kiléptem, mert az életben nem sikerült volna belépni, ha hagyom. A kérdésem az lenne, hogy ha már reggel is észleltem, hogy akadozik a gépem, és ez is elindult, akkor a C meghajtó adja meg magát, esetleg vírust keresek vagy valami egyéb oka van.

Köszi!

bhubert Creative Commons License 2002.08.25 0 0 3
A NEW és az OLD a Te szemszögedből valóban rekordnak néz ki, de asszem ezt másképp oldja meg az SQL. A lényeg az, hogy a benne lévő értékeket csak egyenként fogod tudni átadni. Ha simán nem eszi meg, akkor csinálj egy változót, tedd bele az értéket és úgy add át.

pl: DECLARE VARIABLE ERTEK_1 INTEGER;
DECLARE VARIABLE ERTEK_2 VARCHAR(20);
DECLARE VARIABLE EREDMENY INTEGER;

ERTEK_1 = NEW.ERTEK_1;
ERTEK_2 = NEW.ERTEK_2;

pl: EXECUTE PROCEDURE VALAMI :ERTEK_1, ERTEK_2
RETURNING_VALUES :EREDMENY;

Ez mondjuk IB szintaktika, de valami hasonlót a PSQL-nek is meg kellene ennie.

bhubert Creative Commons License 2002.08.25 0 0 2
Hülyeséget írtam, visszavonom :))))

Itt van egy példa, bár ez InterBase alatt fut:

CREATE TRIGGER TBU_KERES FOR KERES
BEFORE UPDATE POSITION 0
AS
BEGIN
IF (OLD.PCK_STATUSZ <> NEW.PCK_STATUSZ) THEN
BEGIN
NEW.PCK_UTOLSO_IDOPONT = 'NOW';

IF (NEW.PCK_STATUSZ = 2) THEN
BEGIN
UPDATE TAG
SET TAG_INDITOTTCHAT_DARABSZAM = TAG_INDITOTTCHAT_DARABSZAM + 1
WHERE (TAG_KOD = NEW.PCK_HIVO_TAG_KOD);

UPDATE TAG
SET TAG_FOGADOTTCHAT_DARABSZAM = TAG_FOGADOTTCHAT_DARABSZAM + 1
WHERE (TAG_KOD = NEW.PCK_HIVOTT_TAG_KOD);
END
END
END !!

Szóval nem tudom mi lehet a gond, mert ezt a kódot az IB simán megeszi. Esetleg PSQL manual nem segít?

Előzmény: bhubert (1)
bhubert Creative Commons License 2002.08.25 0 0 1
Szerintem NEW érték csak AFTER UPDATE-nél van. Nem lehetséges, hogy ez a gond?
Előzmény: csitti (-)
takkI Creative Commons License 2002.08.23 0 0 0
Kár, hogy tök hülye vagy0k ehhez. Pedig segítettem v0lna:))
Előzmény: csitti (-)
csitti Creative Commons License 2002.07.29 0 0 topiknyitó
Egy tábla BEFORE UPDATE triggerére kapcsolt függvényében kellene figyelnem a tábla egy (vagy több) mezjének értékváltozását. Hogy milyen nevű mezőt (mezőket), és azok milyen változását (null-ra vált, not null-ra vált, esetleg egy konkrét értékű lesz), azt az adatbázisból veszem föl.
Valami ilyesmiről van szó (plpgsql-ben):

IF (NEW.xxx null) THEN ...

Itt az xxx helyére kellene belevarázsolni pl. az hogy "name_field".

Ott szaladtam bele a csapdába, hogy a dinamikus queri nem ismeri a NEW.-ot!

Arra nem bírtam rájönni, hogy a NEW. ill OLD. struktúrát (ami rekord?) hogyan passzolhatnám tovább paraméterként egy másik "normális" függvénynek, ami már bele tudná tenni egy dinamikus queribe azt az SQL utasítást, ami nekem kellene.

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!