RE: [Zope] ZSQL dtml request problem
Hi, Thanks for everyone's help with this. I managed to fix it by rejigging the way my results were called, as I'm using ZPT with macros for the displays. Instead of retrieving the record in the macro, I moved the retrieve out, and just used the macro for the display (would be better for reuse anyway, I think). So the record just inserted can easily be retrieved just using the same SQL statement. INSERT INTO suppliers etc.. <dtml-var sql_delimiter> SELECT * FROM suppliers WHERE supplierid=last_insert_id() Works fine. Thanks Michael -----Original Message----- From: Dieter Maurer [mailto:dieter@handshake.de] Sent: 13 June 2003 21:46 To: Davis Mr MR Cc: 'zope@zope.org' Subject: Re: [Zope] ZSQL dtml request problem Davis Mr MR wrote at 2003-6-12 17:11 +0100:
I'm trying to push the last_inset_id from an Insert statement onto the request namespace, so I can pick it up and retrieve the new record for display.
My ZSQL method looks like this.
INSERT INTO suppliers (insert statements removed) <dtml-var sql_delimiter> SELECT last_insert_id() AS lastinsertid <dtml-call "REQUEST.set('id',lastinsertid)">
It comes back with a NameError - global name 'lastinsertid' is not defined.
The results of ZSQL methods are not automatically added to the DTML namespace. You can use <dtml-with expr="your_ZSQL_Method()[0]"> ... </dtml-with> to push the first result row onto the DTML namespace ("during" the with). Dieter
participants (1)
-
Davis Mr MR