Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Triggery i funkcje - jak? gdzie? jak to ugryźc?
Luke_Star
post 20.03.2007, 22:07:56
Post #1





Grupa: Zarejestrowani
Postów: 129
Pomógł: 2
Dołączył: 17.01.2005

Ostrzeżenie: (0%)
-----


Przeszukałem polska dokumentacje Postgre... jednym słowem bieda. W angielskim podręczniku szybko sie pogubiłem. Aczkolwiek po dośc intensywnych poszukiwaniach za pomoca google doszłem do paru kiepsko opisanych przykładów. Czy posiadacie linki do jakichś interesujących artów, lub ebooki dotyczace trigerów i funkcji? Postgre daje wiele mozliwości ale nie wiem jak sie do tego wziąść bo nie mam materiałów które byłyby dla mnie użyteczne. Możliwe ze uznacie ten temat za prośbe lamy która chciałaby wszystko miec podane na tacy, niestety moja desperacja ośiagnęła juz szczyty. Jęzeli wy mi nie pomozecie to moge juz zaopmniec o PgSQL... chyab ze kupie książke za stówe (ale narazie mnie nie stać).


--------------------
Słowa, słowa, słowa... - Hamlet || Funkcje, funkcje, funkcje... - Luke Star
--------------------------------------
Portal Literacki: ( |||------- ) 30%
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
DeyV
post 21.03.2007, 10:11:36
Post #2





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Uważam, że jak w manualu znajdzie się już interesujący rozdział, to można sobie z nim poradzić:

http://www.postgresql.org/docs/8.1/interactive/triggers.html

http://www.postgresql.org/docs/8.1/interactive/plpgsql.html
http://www.postgresql.org/docs/8.1/interactive/xplang.html


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
erhaminus
post 24.03.2007, 21:23:49
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 30.01.2007

Ostrzeżenie: (0%)
-----


Też to przerabiałem (rozumiem twój ból).

Generalnie jestem na etapie następującym:

Tworzysz trigger, który wywołuje "funkcję trigger".

Funkcja trigger teoretycznie nie może przyjmować parametrów, ale praktycznie może, poprzez odwołanie do tablicy parametrów (coś a` la args[] z C++).

Funkcja trigger zwraca trigger. Oczywiście jest to poza tym normalna funkcja, która może robić to na co akurat masz ochotę.

Co ważne, trigger można wyłączyć/włączyć.

Triggery założone na różnych tabelach mogą wywoływać tą samą funkcję - to oczywiste - ale możesz założyć trigger o tej samej nazwie na innej tabeli z wywołaniem innej funkcji i też bangla.

Dodałbym kilka przykładów ale kurczak nie mam akurat źródeł pod ręką.

Jak masz pytania - wal śmiało, jak będę wiedział - odpowiem.
Go to the top of the page
+Quote Post
jezoo
post 2.05.2007, 07:46:55
Post #4





Grupa: Zarejestrowani
Postów: 92
Pomógł: 3
Dołączył: 4.04.2006

Ostrzeżenie: (0%)
-----


a w jaki sposob moge zmusisc funkcje aby ta mi zwracala 2 wartosci a nie jedna, bo jak jaj dam:
  1. CREATE FUNCTION costam()
  2. returns char,char AS 'select imie,adres from lista;' LANGUAGE 'sql';

to mi wywala, ze jest blad przy char, po returns
jest jakas mozliwosc aby mi funkcja zwrucila te 2 wartosci czy trzeba kombinowac w inny sposob ?
Go to the top of the page
+Quote Post
likemandrake
post 2.05.2007, 22:53:13
Post #5





Grupa: Zarejestrowani
Postów: 175
Pomógł: 17
Dołączył: 23.06.2006

Ostrzeżenie: (0%)
-----


Ogólnie w programowaniu jest tak, ze zwracana jest zawsze jedna zmienna (typ danych). Zeby przy funkcji return zwrocic wiecej danych trzeba to zrobic w postaci obieku lub tablicy najprosciej, nie stosowałem tego w praktyce, więc tu raczej nie pomogę, lecz znalazłem ciekawy link, ktory mam nadzieje poprowadzi Cie w dobra strone.

Link

Pozdrawiam serdecznie


--------------------
serwiswww.pl
Go to the top of the page
+Quote Post
Zbłąkany
post 4.05.2007, 09:11:43
Post #6


Administrator serwera


Grupa: Developerzy
Postów: 521
Pomógł: 13
Dołączył: 2.04.2004
Skąd: 52°24' N 16°56' E

Ostrzeżenie: (0%)
-----


Cytat(jezoo @ 2.05.2007, 08:46:55 ) *
a w jaki sposob moge zmusisc funkcje aby ta mi zwracala 2 wartosci a nie jedna, bo jak jaj dam:
  1. CREATE FUNCTION costam()
  2. returns char,char AS 'select imie,adres from lista;' LANGUAGE 'sql';

to mi wywala, ze jest blad przy char, po returns
jest jakas mozliwosc aby mi funkcja zwrucila te 2 wartosci czy trzeba kombinowac w inny sposob ?

Przeczytaj to, zwróć szczególną uwagę na punkt 10.20


--------------------
Środowisko: Gentoo 2008.0 | Apache | PHP5 | PostgreSQL | MySQL | Postfix
Workstation: Gentoo 2008.0 | Firefox
Thomas Alva Edison: "Aby coś wynaleźć wystarczy odrobina wyobraźni i sterta złomu ..."
Odpowiedź na każde pytanie typu "Jak ...": "Nie da się, to nie PostgreSQL"
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 00:39