pg.ddx.io  pgsql-interfaces@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Emmanuel Charpentier <charpent@bacbuc.dyndns.org>
To: pgsql-general@postgresql.org
To: pgsql-interfaces@postgresql.org
Subject: problem with update rules on a view (ODBC)
Date: Sun, 12 Jan 2003 19:45:33 +0100
Message-ID: <avsd4d$1i1m$1@news.hub.org> (raw)

Dear list,

I am trying to create a small applications using a PostgreSQL 7.2 database, 
updated through ODBC from an OpenOffice form.

I have to work on a small (about 300 rows) subset of a larger (about 10000 
rows) ser of records, encompassing many tables. in the subset, one has to 
make updates to a boolean field, using (informally : this has to be decided 
by a human (a physician, in fact) after reading the information).

I created a view defining the subset of interest, which has two column : an 
identifier (primary key of the underlying table), and the boolean variable 
of interest. The main OpenOffice form is based on this view, and uses 
subforms to display in a convenient manner the records of the other tables 
associated with the record of the main table under examination.

I created two update rules on the view : the first one is conditional : its 
WHERE clause tests for a change of the boolean variable 
(new.value!=old.value) and, if so, updates INSTEAD the underlying table 
WHERE primarykey=new.primarykey ; the second rule, unconditional, does 
INSTEAD NOTHING. The first rule uses typecasts (OpenOffice insists to use 
'0' and '1' as a representation of booleans).

The form works OK, displays the correct set of rows and correctly 
associates subrecords with the main record. However, I cannot update 
through the form. OpenOffice detects an error during the update.

I tried my  rules "by hand" in psql : the update works as advertised in the 
docs. However, I noticed that updating the *real" table gives a message :
UPDATE 1
after updating the table, while updating the view gives the message
UPDATE 0
after "updating" the view (i. e. updating the underlying table).

The same thing happens when I create a single non-conditional INSTEAD rule 
(reporting the condition in the where clause of the update query, which is 
possible in this case) : the record gets updated, and I get an "UPDATE 0" 
message.

This might be the source of my problems : if ODBC returns something to the 
effect of "zero records updated", OpenOffice has reasons to report an error.

What do I do wrong ?

Is that a known problem ?

Is there a workaround ?

Sincerely,

					Emmanuel Charpentier

PS : Culd you please Cc: me your answers : I'm following the list (from 
time to time) through the Newsgroup interface ... E. C.

--
Emmanuel Charpentier




view thread (5+ messages)  latest in thread

Message-ID: <avsd4d$1i1m$1@news.hub.org>
Permalink:  ../avsd4d$1i1m$1@news.hub.org/
Also on:    postgresql.org/message-id/avsd4d$1i1m$1@news.hub.org

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-interfaces@postgresql.org
  Cc: charpent@bacbuc.dyndns.org, pgsql-general@postgresql.org
  Subject: Re: problem with update rules on a view (ODBC)
  In-Reply-To: <avsd4d$1i1m$1@news.hub.org>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox