[Zope] Looking if a record with a given key exists in a database several times, in dtml

Steve Spicklemire steve@spvi.com
Sun, 17 Feb 2002 15:12:39 -0500


Your idea sounds reasonable..  are you asking how to implement it, or is 
there some other problem? I would think you could create a python script 
that returns a dictionary that could be used to lookup results. 
Something like:

buildCache with argument "results"

cache_dict = {}

for result in results:
	cache_dict[result.key] = result

return cache_dict
-----------------

called from DTML as:

<dtml-let theCache="buildCache(results=yourQuery())">
<dtml-in ....>
<dtml-if "theCache.has_key(yourTestKey)">
<dtml-let theResult="theChache[yourTestKey]">
Do something with "theResult"..
</dtml-let>
</dtml-if>
</dtml-in>
</dtml-let>

Does that help?
-steve
	
On Sunday, February 17, 2002, at 02:42  PM, Igor Leturia wrote:

>   Hi all!
>
>   I have a problem: in dtml, I have to iterate through a very big list
> and for each item I must look if there is a record with that key in a
> database. I can't run a 'select' ZSQLMethod for each, because it would
> take too long. What I want to do is run the 'select' ZSQLMethod once and
> load the results in a variable (an array or dictionary) which then will
> be faster to look up in, or look up in the results of that query in some
> fast way.
>
>   I have searched zope.org, but found nothing. Any ideas?
>
> 					Igor Leturia
>
> _______________________________________________
> 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 )