Problem with rules & ODBC
От | Mario Weilguni |
---|---|
Тема | Problem with rules & ODBC |
Дата | |
Msg-id | 00082319510009.00407@loki обсуждение исходный текст |
Ответы |
Re: Problem with rules & ODBC
|
Список | pgsql-general |
-----BEGIN PGP SIGNED MESSAGE----- I've a strange problem using the following configuration: * Access97 via ODBC * Postgres 7.0.2 * a table with automatic logging of updates into another table using rules Example: create table test ( name varchar(32), surname varchar(32), birthday datetime .... .... ); create rule r1 as on update to test where old.name<>new.name do insert into protocol ('now', USER, 'name', old.name, new.name); create rule r2 as on update to test where old.surname<>new.surname do insert into protocol ('now', USER, 'surname', old.surname, new.surname); Of course this is just a small example, I did not even test if the syntax is ok, but you should get the point. When I now use psql to modify some entries, everything works as expected. When trying to upadte using Access, Access reports an error that the entry has been changed by a different user and cannot be updated. Then I've enabled ODBC logging, and found out that the Postgres ODBC driver is reporting something like this: UPDATE test SET .... INSERT 2344934 1 UPDATE 1 ROLLBACK Without usage of rules it looks like this: UPDATE test SET .... UPDATE 1 COMMIT and everything is ok. My guess is that the problem is the report of the "INSERT 2344934 1", which seems to be due to the rules fireing. This seems to confuse Access97 (and Access2000 as well). WinSQL has no problems with this. Did anybody else encouter this or a similar problem? Any ideas how to prevent this (maybe some special ODBC driver settings? Or Access options?)? Mario Weilguni -----BEGIN PGP SIGNATURE----- Version: 2.6.3i Charset: noconv iQCVAwUBOaQPBAotfkegMgnVAQGgiwP/fk7onp8x+3U2AtYTDQCMErcX5cZqoQ8t m69eNHBcArAXSne0B0SgLMr1SlO2VyNcxwP4GgfIOOuYfUxgOqFPcDd0xV7lILYm ISAYywU3ZECQ5AkmjYWhNmvGLbybjXtczlE0Mb2zHCIti0xku18VQnuEd7Ha8uez H5SaUrY/gw0= =gisG -----END PGP SIGNATURE-----
В списке pgsql-general по дате отправления: