<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - Wyjątek z funkcji]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=534&amp;type=atom"/>
	<updated>2011-01-26T06:14:25Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=534</id>
		<entry>
			<title type="html"><![CDATA[Odp: Wyjątek z funkcji]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2365#p2365"/>
			<content type="html"><![CDATA[Witam
Instalowałem wersję standartowo bez żadnych dodatkowych opcji. Ściągnąłem SQL Manager for PostgreSQL w pełnej wersji 30-dniowa i tam jest debugowanie funkcji pomimo zahaszowanej opcji shared_preload_libraries w konfiguracji serwera. Jak na razie to wystarcza.]]></content>
			<author>
				<name><![CDATA[adamleon]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=873</uri>
			</author>
			<updated>2011-01-26T06:14:25Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2365#p2365</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Wyjątek z funkcji]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2364#p2364"/>
			<content type="html"><![CDATA[A zainstalowałeś postgresa z opcją debuggowania
[url]http://www.postgresql.org/docs/current/static/install-procedure.html[/url]

opcja nazywa się --enable-debug]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2011-01-24T20:46:08Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2364#p2364</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Wyjątek z funkcji]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2363#p2363"/>
			<content type="html"><![CDATA[Dzięki, działa

Ale jeszcze mam jedna sprawę, chodzi o debugowanie funkcji. Juz kiedys o to pytałem, ale nie rozwiazałem problemu. Znalazłem taki opis w sieci

"W celu włączenia debugowania procedur i funkcji w pgAdminie (Postgresql 8.3/8.4 z pakietu EnterpriseDB) należy w pliku
postgresql.conf zmienić parametr shared_preload_libraries na:

MS Windows:
shared_preload_libraries = '$libdir/plugins/plugin_debugger.dll'

Mac OS X/Linux:
shared_preload_libraries = '$libdir/plugins/plugin_debugger.so'

następnie uruchomić skrypt /share/contrib/pldbgapi.sql w bazie, która ma mieć możliwość debugowania procedur/funkcji"

Jednak w Postgresql9 na windows po odznaczeniu shared_preload_libraries server się nie uruchamia.

Czy to chodzi o wersję EnterpriseDB i dlatego nie działa?
Czy ktoś może się interesował tym tematem.]]></content>
			<author>
				<name><![CDATA[adamleon]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=873</uri>
			</author>
			<updated>2011-01-23T08:23:56Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2363#p2363</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Wyjątek z funkcji]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2362#p2362"/>
			<content type="html"><![CDATA[Najprościej (zeby bylo jak najmniej modyfikacji) chyba bedzie zrobić tak 
[code]
CREATE OR REPLACE FUNCTION fkasuj_do_usuniecimagazyn (
  "zm_nr_towaru_skladnik" integer
)
RETURNS VARCHAR AS
$body$
  declare 
  towar tab_magazyn.nazwa_towaru%TYPE;
  begin
     delete from tab_magazyn where nr_towaru_skladnik = zm_nr_towaru_skladnik;
     return 0;
     EXCEPTION
        WHEN foreign_key_violation THEN
            select nazwa_towaru INTO towar FROM tab_magazyn where nr_towaru_skladnik = zm_nr_towaru_skladnik;
            RAISE NOTICE 'Powiazane rekordy';
            RETURN towar;
end;
$body$
LANGUAGE 'plpgsql'
SECURITY DEFINER
[/code]]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2011-01-23T07:51:38Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2362#p2362</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Wyjątek z funkcji]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2361#p2361"/>
			<content type="html"><![CDATA[Nie, nie mam]]></content>
			<author>
				<name><![CDATA[adamleon]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=873</uri>
			</author>
			<updated>2011-01-22T23:15:49Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2361#p2361</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Wyjątek z funkcji]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2360#p2360"/>
			<content type="html"><![CDATA[Masz jakieś triggery / reguły na tej tabeli ?]]></content>
			<author>
				<name><![CDATA[psocha]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=519</uri>
			</author>
			<updated>2011-01-22T19:31:17Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2360#p2360</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Wyjątek z funkcji]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2359#p2359"/>
			<content type="html"><![CDATA[Witam
Mam taka funkcje która kasuje rekord, a jeżeli jest on powiązany z inną tabelą i jest błąd ( nie ma usuwania kaskadowego) to ma zwrócić wartość z kolumny nazwa_towaru tabeli z której usuwamy.

CREATE OR REPLACE FUNCTION fkasuj_do_usuniecimagazyn (
  "zm_nr_towaru_skladnik" integer
)
RETURNS VARCHAR AS
$body$
  begin
     delete from tab_magazyn where nr_towaru_skladnik = zm_nr_towaru_skladnik;
     return 0;
     EXCEPTION
        WHEN foreign_key_violation THEN
            RAISE NOTICE 'Powiazane rekordy';
            RETURN nazwa_towaru;
 end;
$body$
LANGUAGE 'plpgsql'
SECURITY DEFINER

Funkcja się kompiluje ale przy wywołaniu select * from fkasuj_do_usuniecimagazyn(72) dostaje błąd że kolumna nazwa_towaru nie istnieje

NOTICE:  Powiazane rekordy
ERROR:  column "nazwa_towaru" does not exist
LINE 1: SELECT  nazwa_towaru

W jaki sposób to naprawić?

Z góry dzięki za pomoc
AdamP.]]></content>
			<author>
				<name><![CDATA[adamleon]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=873</uri>
			</author>
			<updated>2011-01-22T14:49:32Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2359#p2359</id>
		</entry>
</feed>
