Re: My MS-Access problem keeps getting weirder and - Mailing list pgsql-odbc

From Peter Bense
Subject Re: My MS-Access problem keeps getting weirder and
Date
Msg-id s28b4332.038@gwm.sc.edu
Whole thread Raw
Responses Re: My MS-Access problem keeps getting weirder and  (Jeff Eckermann <jeff_eckermann@yahoo.com>)
List pgsql-odbc
This is what I have been reflecting on for awhile.  I spoke to some individuals in #postgresql about the possibility of
usinga trigger, stored procedure, or something like that.  [Which honestly I have no experience in implementing.] 

The rules method seems to be the most straightfoward implementation, however * but perhaps that's a false presumption?
AsI understand it a rule is a type of procedure in and of itself.  Is this understanding correct?  If so, what would
preventme from being able to execute more than one INSERT per rule? 

./Peter

Peter T. Bense - Teradata Certified Professional
(ptbense@gwm.sc.edu) - 803-777-9476
Database Administrator/Webmaster
Prevention Research Center
University of South Carolina

>>> "Greg Campbell" <greg.campbell@us.michelin.com> 5/17/2005 5:24:14 PM >>>
I think of the activity you described as TRIGGER events, more than rules.
It sound a bit complicated, like you have to avoid a series of foreign
key violations or loops or FOREIGNS where the PRIMARY side is NOT
transacted yet.

This situation still sound like a DATA problem with a value exceeding
the BOUNDS of what a field will hold.

Have you tried DEBUGGING with a simplistic version where each action is
done as separate steps?  (I suppose if the rule are in place you have to
redo you database a bit to test this.) .... I guess you have,...that's
what your message says.

Is it possible to use the client to send each step as a statement, all
wrapped in a transaction?

Is it possible to write a function (stored procedure) to take care of
the combination of steps?



Peter Bense wrote:
> I want to thank everyone who has provided suggestions regarding my
> MS-Access / ODBC / Link-tables issue the past couple of days.
>
> Here's what I've found:
>
> 1. As my gut instincts had told me, there is no problem with the
> translations of booleans, at least given how I have been using them
> (with foreign-key lookups).
>
> 2. Inserts into the following view work cleanly:
>
> afl=# \d vi_tblpis_survey_receipt
> View "public.vi_tblpis_survey_receipt"
>     Column     |   Type   | Modifiers
> ---------------+----------+-----------
>  ppt_id        | integer  |
>  date_received | date     |
>  staff_id      | integer  |
>  survey_type   | smallint |
>  is_blank      | boolean  |
>  birth_month   | smallint |
>  birth_year    | smallint |
> View definition:
>  SELECT tblpis_survey_receipt.ppt_id,
> tblpis_survey_receipt.date_received, tblpis_survey_receipt.staff_id,
> tblpis_survey_receipt.survey_type, tblpis_survey_receipt.is_blank,
> tblpis_survey_receipt.birth_month, tblpis_survey_receipt.birth_year
>    FROM tblpis_survey_receipt
>   ORDER BY tblpis_survey_receipt.insertion;
>
> 3. THINGS BREAK WHEN I APPLY CERTAIN TYPES OF RULES TO THE VIEW.
>
> The way this view is supposed to work is as follows:
> A) - A data entry person enters participant ID, survey type, date
> received, etc.
> B) - A RULE performs the following insertion:
> INSERT INTO tblpis_survey_receipt (ppt_id, date_received, staff_id,
> survey_type, is_blank, birth_month, birth_year, check_ppt, check_dob,
> check_tracking, date_inserted, date_modified)
> VALUES (new.ppt_id, new.date_received, new.staff_id, new.survey_type,
> new.is_blank, new.birth_month, new.birth_year, 'f', 'f', 'f', now(),
> now());
>
> C) - A series of checks are conducted to ensure that this data is
> valid.  Basically 4 or 5 updates are run to toggle these boolean fields
> on the PostgreSQL side.  If the participant ID is a valid participant
> ID, that field is toggled.  Once it passes that field, the month and
> year of birth are verified.  If that check is successful, then it checks
> to see whether or not there is an associated tracking record already.
> If there isn't, it passes the tracking check.
>
> All of those steps work fine on my test inserts, and the datavalues are
> toggled accordingly.  So far so good.
>
> WHEN I TRY TO INSERT DATA INTO SOME OTHER TABLE FROM THAT RULE, THINGS
> BREAK!
>
> As soon as I add an INSERT statement to my rule following the UPDATEs,
> e.g.
> INSERT INTO tblpis_tracking (ppt_id, pre_rc_date, pre_rc_id,
> pre_is_blank)
>     SELECT ppt_id, date_received, staff_id, is_blank
>     FROM tblpis_survey_receipt
>     WHERE ppt_id=new.ppt_id
>     AND survey_type=1
>     AND check_ppt='t'
>     AND check_dob='t'
>     AND check_tracking='t';
> );
>
> ... Things break upon insert.
>
> Why?
>
> Can I only perform one insert per AS ON INSERT TO?
>
> If so, this might be the cause of my problem.

pgsql-odbc by date:

Previous
From: Zoltan Boszormenyi
Date:
Subject: Re: PsqlODBC problem with complex query
Next
From: "Peter Bense"
Date:
Subject: I hate MS-Access & ODBC.