Hi Zopers, I have a processing script that takes emails and puts them into a table. I bring up a table for confirmation and then submit the whole thing by a iterative item:records zsql method. My problem is that the table requires a unique primary key and quite regularly there duplicates. So ofcourse it falls over with the expected error. I have tried in the zsql method encapsulating the sql with a <dtml-if "checkforexistantrecord"> and then at the bottom of the zsql loop I commit so make sure the second time around, the data is checked. This does not seem to work. So what im left with wondering is, if I can query in the zsql method: if error, then exit or go somewhere else Is this possible? sorry to be very vague. The conundrum is the fact that the zsql method it an item loop in its own, so i cannot seem to use an if statement because it doesnt iterate by the normal <dtml-in> route.... Any advice? TIA, -- Paz Oratrix Development BV http://www.oratrix.com GRiNS SMIL Editor -
I have a processing script that takes emails and puts them into a table. I bring up a table for confirmation and then submit the whole thing by a iterative item:records zsql method.
My problem is that the table requires a unique primary key and quite regularly there duplicates. So ofcourse it falls over with the expected error. I have tried in the zsql method encapsulating the sql with a <dtml-if "checkforexistantrecord"> and then at the bottom of the zsql loop I commit so make sure the second time around, the data is checked. This does not seem to work.
So what im left with wondering is, if I can query in the zsql method: if error, then exit or go somewhere else
Is this possible?
yes, this is possible. If I understand your question at least. BTW This is untested, but I have used something similar before mailid is the input field/variable for your method <dtml-in emailitems> <dtml-in checkexistant_error(mailid=mailid)> (if this is another zsql method) <dtml-if sequence-start> skip or do something else <dtml-else> upload your email. You may want to call another Zsql method for this </dtml-if> </dtml-in> <dtml-in>
sorry to be very vague. The conundrum is the fact that the zsql method it an item loop in its own, so i cannot seem to use an if statement because it doesnt iterate by the normal <dtml-in> route....
Any advice?
hth Rik
Thanks for that... Although Im not terribly sure what the magic behind the sequence-start is, but it works very well. Cheers, -- Paz Oratrix Development BV http://www.oratrix.com GRiNS SMIL Editor - Rik Hoekstra wrote:
I have a processing script that takes emails and puts them into a table. I bring up a table for confirmation and then submit the whole thing by a iterative item:records zsql method.
My problem is that the table requires a unique primary key and quite regularly there duplicates. So ofcourse it falls over with the expected error. I have tried in the zsql method encapsulating the sql with a <dtml-if "checkforexistantrecord"> and then at the bottom of the zsql loop I commit so make sure the second time around, the data is checked. This does not seem to work.
So what im left with wondering is, if I can query in the zsql method: if error, then exit or go somewhere else
Is this possible?
yes, this is possible. If I understand your question at least. BTW This is untested, but I have used something similar before
mailid is the input field/variable for your method
<dtml-in emailitems> <dtml-in checkexistant_error(mailid=mailid)> (if this is another zsql method) <dtml-if sequence-start> skip or do something else <dtml-else> upload your email. You may want to call another Zsql method for this </dtml-if> </dtml-in> <dtml-in>
sorry to be very vague. The conundrum is the fact that the zsql method it an item loop in its own, so i cannot seem to use an if statement because it doesnt iterate by the normal <dtml-in> route....
Any advice?
hth
Rik
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
Thanks for that... Although Im not terribly sure what the magic behind the sequence-start is, but it works very well.
A short explanation: sql queries return a result object (so does ZCatalog btw), which you can't address directly in DTML (or at least I wouldn't know how ;-) If it the result object is empty it won't have a (sequence) start in a dtml-in. This is the same code SearchInterfaces uses for returning a 'this query has no results'. Rik
participants (2)
-
Paul Zwarts -
Rik Hoekstra