Error when changing views

From: Balt van Rees <vanrees-postgres(at)vvtp(dot)tudelft(dot)nl>
To: pgsql-odbc(at)postgresql(dot)org
Subject: Error when changing views
Date: 2002-06-06 15:57:02
Message-ID: 20020606155702.GB7327@vvtp.tudelft.nl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

Hi,

I have a problem with changing views in Access. Of course I designed the
proper rules (CREATE RULE upd_viewfoo AS ON UPDATE TO viewfoo DO INSTEAD
UPDATE tablebar SET ..... ) and it all works when I update the view
manually (i.e. in a terminal).

However, when I try to update the view via ODBC (in Access 97) something
goes wrong. Access gives me a basic error ("This record has been changed
by another user, blablabla") that doesn't make sense in my opinion. What
does make sense, however, is the my.log: among all the lines of code, I
found the following:

send_query(): conn=116763028, query='UPDATE ....update-query....'
send_query: done sending query

<cut lots of lines>

send_query: got id = 'C'
send_query: ok - 'C' - BEGIN
send_query: setting cmdbuffer = 'BEGIN'
send_query: got id = 'P'
send_query: got id = 'C'
send_query: ok - 'C' - UPDATE 0
send_query: setting cmdbuffer = 'UPDATE 0'
send_query: returning res = 117836720
send_query: got id = 'Z'
PGAPI_ExecDirect: returned 0 from PGAPI_Execute

(------- watch this: -------------)

[SQLRowCount]PGAPI_RowCount: entering...
*** msg = 'UPDATE 0'
**** PGAPI_RowCount(): THE ROWS: *pcrow = 0
[SQLCancel]PGAPI_Cancel: entering...

(---------------------------------)

PGAPI_FreeStmt: entering...hstmt=117838192, fOption=0
recycle statement: self= 117838192
QResult: in DESTRUCTOR
QResult: free memory in, fcount=0
QResult: free memory out
QResult: exit DESTRUCTOR
APD_free_params: ENTER, self=117838292
APD_free_params: EXIT
PGAPI_Cancel: PGAPI_FreeStmt returned 0
[SQLFreeStmt]PGAPI_FreeStmt: entering...hstmt=117838192, fOption=1
SC_Destructor: self=117838192, self->result=0, self->hdbc=116763028
APD_free_params: ENTER, self=117838292
APD_free_params: EXIT
SC_Destructor: EXIT
[SQLTransact]entering PGAPI_Transact: hdbc=116763028, henv=0
PGAPI_Transact: sending on conn 116763028 'ROLLBACK'
send_query(): conn=116763028, query='ROLLBACK'
send_query: done sending query

IMHO, it seems the "UPDATE 0" returned by postgresql (as it also does
on a manual update, since this is default when updating a view) makes
the ODBC driver think 0 rows are updated, the query would be
unsuccesfull and triggers the ROLLBACK and gives me the error in Access.

Somehow, this does not smell right and using version 7.2 of both the
ODBC-driver and postgres, I think something is wrong with it.

Hope you have any comments/suggestions?

Greetings,

Balt van Rees

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message Hiroshi Inoue 2002-06-07 02:40:58 Re: int8 becames string in BDE :-(
Previous Message Dave Page 2002-06-06 13:59:47 Re: int8 becames string in BDE :-(