Re: Views and Access 2000 - Mailing list pgsql-odbc

From Tambet Matiisen
Subject Re: Views and Access 2000
Date
Msg-id 00b101c2d447$2d980820$0100a8c0@kodunet.ee
Whole thread Raw
In response to Views and Access 2000  (Ian Sealy <Ian.Sealy@bristol.ac.uk>)
Responses Re: Views and Access 2000  (Ian Sealy <Ian.Sealy@bristol.ac.uk>)
List pgsql-odbc
7.3 fixes this. See
http://www.postgresql.org/docs/view.php?version=7.3&idoc=0&file=rules-status
.html.

  Tambet

----- Original Message -----
From: "Ian Sealy" <Ian.Sealy@bristol.ac.uk>
To: <pgsql-odbc@postgresql.org>
Cc: "Ed Crewe" <ed.crewe@bristol.ac.uk>; "Jan Grant"
<jan.grant@bristol.ac.uk>
Sent: Friday, February 14, 2003 3:40 PM
Subject: [ODBC] Views and Access 2000


> Hi,
>
> We're using Access 2000 as a frontend to PostgreSQL, using the latest
> PostgreSQL ODBC driver (7.02.00.05).
>
> This was originally just an Access database and I'm using views to mimic
> the original Access tables, with rules that update the underlying
> PostgreSQL tables when the views are changed. These rules work fine if
> the views are changed via psql. They also work fine from Access 2000 if
> the PostgreSQL database used is version 7.1.2, but they don't work with
> version 7.2.3.
>
> Here's a simple example. Here's the table:
>
> CREATE SEQUENCE "test_table_seq" start 1 increment 1 maxvalue 2147483647
minvalue 1  cache 1;
> CREATE TABLE "test_table" (
> "table_id" integer DEFAULT nextval('"test_table_seq"'::text) NOT NULL,
> "field" character varying(50)
> );
>
> Here's the view:
>
> CREATE VIEW "TestView" as SELECT test_table.table_id AS "TableID", field
AS "Field" FROM test_table;
>
> And here are the rules:
>
> CREATE RULE test_update AS ON UPDATE TO "TestView" DO INSTEAD UPDATE
test_table SET field=new."Field" WHERE table_id=old."TableID";
> CREATE RULE test_insert AS ON INSERT TO "TestView" DO INSTEAD INSERT INTO
test_table (field) VALUES (new."Field");
> CREATE RULE test_delete AS ON DELETE TO "TestView" DO INSTEAD DELETE FROM
test_table WHERE table_id=old."TableID";
>
> As I say, everything works properly with PostgreSQL 7.1.2, but not with
> PostgreSQL 7.2.3 (using the Red Hat packages under Red Hat 7.3). If I
> try and insert a record then I get an error from Access:
>
>   The field is too small to accept the amount of data you attempted to
>   add. Try inserting or pasting less data.
>
> If I try and update an existing record then I get this error:
>
>   Write Conflict
>
>   This record has been changed by another user since you started editing
>   it...
>
> If I try and delete a record then I get:
>
>   The Microsoft Jet database engine stopped the process because you and
>   another user are attempting to change the same data at the same time.
>
> I don't think the FAQ at
> http://gborg.postgresql.org/project/psqlodbc/faq/faq.php?faq_id=59
> explains this, because I get the same error even when updating a row
> that doesn't contain empty strings. Also there aren't any timestamps
> involved.
>
> Has anyone got any suggestions? I'd prefer to carry on using the Red Hat
> PostgreSQL packages, but I'd be happy to upgrade to PostgreSQL 7.3.2 if
> someone thought that that would solve the problem.
>
> Cheers,
> Ian
>
> --
> Dr Ian Sealy
> Internet Development
> Institute for Learning and Research Technology
> University of Bristol
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org
>


pgsql-odbc by date:

Previous
From: Jeff Eckermann
Date:
Subject: Re: slowness in fetch from the psqlodbc driver
Next
From: Jeff
Date:
Subject: Inquiry From Form [pgsql]