[SQL] Kind of error-handler in a pgsql function

2001-07-04 Thread DI Hasenöhrl



Hi,
 
When I write in psql:
testdb=# update table1 set tableattribute='any' 
where table_nr=1;
    if a tuple exists, I get this 
message 
testdb=# update 1
    if no tuple with table_nr=1 
exists, I get this message
testdb=# update 0
    
 
Is there a possibility to make a difference in a 
pgsql function like this:
create function updTable(text,integer) returns int 
AS
'DECLARE
   msg ALIAS FOR $1;
   nr    ALIAS FOR 
$2;
 BEGIN
 update table1 set 
tableattribute=msg where table_nr=nr;
 
--pseudocode
   if update = 0 
then
 return 
0;
   
else
 return 
1;
   end 
if;
   END;
'language 'plpgsql';
 
or for a function, which inserts data:

create function insTable(text,integer) returns int 
AS
'DECLARE
   msg ALIAS FOR $1;
   nr    ALIAS FOR 
$2;
 BEGIN
 insert into table1 values 
(nr,msg);
 
--pseudocode
   if error= cannot insert 
duplicate key.then
 return 
0;
   
else
 return 
1;
   end 
if;
   END;
'language 'plpgsql';
 
I want to know the result of an insert or update, because I call these 
functions from an Access form and the next steps of the program depend on 
these results.
 
I hope, someone can help me, because I didn't find anything in the docu or 
mailing list.
Thanks in advance
Irina
 
E-Mail: [EMAIL PROTECTED]


Re: [SQL] Kind of error-handler in a pgsql function

2001-07-04 Thread Tom Lane

=?iso-8859-1?Q?DI_Hasen=F6hrl?= <[EMAIL PROTECTED]> writes:
> I want to know the result of an insert or update, because I call these func=
> tions from an Access form and the next steps of the program depend on these=
>  results.

See the FOUND variable (if you just want to test zero or not-zero rows
processed) or the SET DIAGNOSTICS statement to get the row count.

There is no way to trap an error inside a plpgsql function, however.

regards, tom lane

---(end of broadcast)---
TIP 4: Don't 'kill -9' the postmaster



Re: [SQL] Re: Help!!! Trying to "SELECT" and get a tree structure back.

2001-07-04 Thread Markus Wagner

Hi Joe,

what if you want to insert a node somewhere in the tree?
You have to update all nodes, right?

Markus

On Friday 29 June 2001 21:06, --CELKO-- wrote:
>
> Albert (1,12)
> /\
>   /\
> Bert (2,3)Chuck (4,11)
>/|   \
>  /  | \
>/|   \
>  /  | \
> Donna (5,6)  Eddie (7,8)  Fred (9,10)
>

---(end of broadcast)---
TIP 4: Don't 'kill -9' the postmaster