[Zope] Calling a Z SQL Method directly

Chris McDonough chrism@digicool.com
Sun, 12 Mar 2000 00:11:07 -0500


Douglas,

ZSQL methods can be passed arguments.. e.g.

<dtml-in expr="return_authors(id='123')">
...
</dtml-in>

In the case that the 'id' value you want to pass in comes from REQUEST
or another namespace, you can use it:

<dtml-in expr="return_authors(id=id)">
...
</dtml-in>

Douglas Bates wrote:
> 
> I am a little confused about how to call a Z SQL Method directly from
> within a DTML document or a DTML Method.
> 
> The application is web-based access to a bibliographic database.  I
> have one Z SQL Method that looks up publications by author names, or
> by words in the title, or by keywords.  I set up a search interface to
> that method.  I am now trying to modify the DTML Method for generating
> a report from such a query.  I have read the Z SQL Method User's Guide
> but apparently I haven't understood it completely.
> 
> To make things definite I will describe a simple case.  Suppose I look
> up one author's name.  The Z SQL Method is called search_author.  The
> columns it returns include the "id" for each reference listing, the
> "type", the "year", and the "title".  I have also created a Z SQL
> Method called return_authors that takes a single argument "id" and
> returns the names of the authors, one per row, in the correct order
> for the publication.  Another Z SQL Method, return_journal, also takes
> an "id" number and returns the title of the journal, the volume and
> number, the beginning page and the final page of the article.
> 
> While I am processing the results of search_author in the DTML method,
> I would like to be able to call return_authors and return_journal
> directly.  It is not clear to me how I do this.  I had hoped that I
> could use a dtml-in tag to call these methods while I was within
> another dtml-in but either I am misinterpreting the effect of dtml-in
> or I haven't got the sequence right.  What I was trying looked like
> 
> <dtml-in search_author size=50 start=query_start>
>  ...
>         <tr>
>           <td><dtml-var year null=""></td>
>           <td><dtml-var title null=""></td>
>           <td><dtml-in return_authors start=query_start>
>                   <dtml-var name>;
>               </dtml-in></td>
>               <dtml-in return_journal_info start=query_start>
>                   <td><dtml-var title></td>
>                   <td><dtml-var vol null=""></td>
>                   <td><dtml-var bpg null="">-
>                       <dtml-var epg null=""></td>
>               </dtml-in>
>         </tr>
>  ...
> </dtml-in>
> 
> I was hoping that the <dtml-var id> from within the <dtml-in> loop
> would be propagated to a call to return_authors or to return_journal.
> 
> I understand that I can use a URL to call the Z SQL Method but I am
> hoping I can do it "inline", as it were.
> 
> I would appreciate any suggestions.
> --
> Douglas Bates                            bates@stat.wisc.edu
> Statistics Department                    608/262-2598
> University of Wisconsin - Madison        http://www.stat.wisc.edu/~bates/
> 
> _______________________________________________
> 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 )

-- 
Chris McDonough
Digital Creations, Inc.
Zope - http://www.zope.org