[Zope-dev] <dtml-in> how do I get count of records in sequence? (aka batch-size)

Federico Di Gregorio fog@mixadlive.com
Mon, 17 Apr 2000 17:52:26 +0200


the right way to do it is to extract a field from the database
(lets call it "field") and then:

<dtml-if "_['count-field'] == 1">
...
<dtml-else>
...
</dtml-if>

Scavenging the mail folder uncovered Brad Clements's letter:
> I want to be able to do something like this:
> 
> <dtml-in "GetDB()[Table][Indice][Rec].fetchall()">
> <dtml-with "_['sequence-item']">
> <dtml-if "_['sequence-size'] == 1">
> <dtml-var  "tableFromView(URL=URL0)">
> <dtml-else>
> <dtml-var  "tableFromView(viewName='DefaultLocatorView',URL=URL0)">
> </dtml-if>
> </dtml-with>
> </dtml-in>
> 
> That is, produce different output depending on the number of items returned 
> from dtml-in.  
> 
> There isn't a "sequence-size" variable. I thought "batch-size" would work, but 
> that doesn't seem to exist either, even when I use "size=nn" in the dtml-in 
> statement. 
> 
> I know I can use total-nnn, but then I need to know an attribute name. In this 
> case, I do *not* know any of the attributes in the objects returned from 
> fetchall().
> 
> Therefore I'm stuck doing something like this:
> 
> <dtml-if "_.len(GetDB()[Table][Indice][Rec].fetchall()) == 1">
> <dtml-var "GetDB()[Table][Indice][Rec].fetchone().tableFromView(URL=URL0)">
> <dtml-else>
> <dtml-in "GetDB()[Table][Indice][Rec].fetchall()">
> <dtml-with "_['sequence-item']">
> <dtml-var "tableFromView(viewName='DefaultLocatorView',URL=URL0)">
> </dtml-with>
> </dtml-in>
> 
> This is ugly, and unlike SQLMethods, the value returned from fetchall() is not 
> cached. (not sure if DTML caches the result of the call or not)
> 
> FYI, I'm using SQLDict.py here, and its very nice. Next step is to emulate a 
> DB interface using Zope Database Adapters. This way I can test my core 
> logic outside of Zope, but work with the transaction machinery inside zope.
> 
> 
> 
> Brad Clements,                bkc@murkworks.com   (315)268-1000
> http://www.murkworks.com                          (315)268-9812 Fax
> netmeeting: ils://ils.murkworks.com               AOL-IM: BKClements
> 
> _______________________________________________
> Zope-Dev maillist  -  Zope-Dev@zope.org
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists - 
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )
> 

-- 
Federico Di Gregorio
MIXAD LIVE System Programmer                           fog@mixadlive.com
Debian GNU/Linux Developer & Italian Press Contact        fog@debian.org
  Put a GNOME on your desktop! [http://www.gnome.org]
                                      -- brought to you by One Line Spam