[Zope] ZSQL - multiple inserts to multiple tables in one query.
Dan Jacobs
dan@danjacobs.com
Wed, 25 Sep 2002 01:39:16 +0100 (BST)
Tim,
This looks really useful, next question. How do I call it from a DTML
method?
Thanks,
Dan
On Tue, 24 Sep 2002, Tim Wilson wrote:
> On Wed, Sep 25, 2002 at 01:21:11AM +0100, Dan Jacobs wrote:
> >
> > I am developing my first Zope/SQL application.
>
> Good luck, I'm just finishing one. I think you'll find it enjoyable.
>
> > I have a database which stores information on musical scores. I am trying
> > to write a zope interface to add new musical scores. My schema has
> > several tables and in each table 2/3 fields need values inserted into them
> > each time a new musical score is added.
> >
> > So my question is... How do I do this within one ZSQL method?
>
> Here's some code I use in my SQL application. This code adds a record to
> an 'event' table and one or more associated records to an
> 'event_participant' table. Notice the <dtml-var sql_delimiter>. This is
> used to separate the two queries.
>
> -Tim
>
> INSERT INTO event (event_name, event_type, location_id,
> start_time, end_time, description,
> username)
> VALUES (
> <dtml-sqlvar event_name type="nb">,
> <dtml-sqlvar event_type type="nb">,
> <dtml-sqlvar location_id type="int">,
> <dtml-sqlvar start_time type="nb">,
> <dtml-sqlvar end_time type="nb" optional="true">,
> <dtml-sqlvar description type="nb" optional="true">,
> <dtml-sqlvar username type="nb">
> )
>
> <dtml-var sql_delimiter>
>
> <dtml-in participant_ids>
> INSERT INTO event_participant (participant_id, event_id)
> VALUES (
> <dtml-sqlvar sequence-item type="int">,
> (SELECT max(event_id) FROM event)
> )
> <dtml-var sql_delimiter>
> </dtml-in>
>
> --
> Tim Wilson | Visit Sibley online: | Check out:
> Henry Sibley HS | http://www.isd197.org | http://www.zope.com
> W. St. Paul, MN | | http://slashdot.org
> wilson@visi.com | <dtml-var pithy_quote> | http://linux.com
>
- Dan Jacobs
- 07956 246 659