* Paul Erickson ([EMAIL PROTECTED]) [010419 17:02]:
> The Doctor What wrote:
> > > * Loosing the variable between the form and dtml-if
> 
> I don't understand this.  I'm assuming that you are losing values that
> are not in your argument list.  All you have to do is add the arguments.

That isn't what I mean.  Try this (typed in, so it may need to be
adjusted):
<param>foo=0</param>
<dtml-if expr="foo != 0">Life is good</dtml-if>

You'll NEVER get Life is good to print out.  EVER.  This is because
ZSQL is setting foo to 0.  But dtml-var and dtml-sqlvar both work.

> > > * Inability to handle table.field names for variables
> > > * And enough flexibility to work around the above problems
> > >
> > > This makes ZSQL extreamely nasty, and impossible to use with a
> > > normalized database.
> 
> Database normalization isn't really an issue.  It sounds like you're
> really just having problems with the syntax of joins.

Nope, can do joins.  Been doing joins (mainly inner).  Not the
problem.  The problem is that if I have tables like:
Table1
------
id
name
desc

Table2
------
id
Table1ID   <-- Foreign Key thrown in for fun.
name
desc

And I join them, then I MUST rename all the selects using AS:
select
  Table1.id as id1
  Table1.name as name1
...etc....

Because I can't have zsql put the variables in the caller's
namespace as "Table1.id".  It puts them in as "id" (without the AS).

Fortunately, I found the column for sqltest (which is the other end
of ZSQL):
<dtml-sqltest id1 column="Table1.id" ....

> > >
> > > What's the point?  ZSQL sucks, how do I talk to the DB directly?
> 
> Grab the Python database adapter and write some python classes or
> external methods to do what you need.

Can I use them from a python script?  If not, what's the point?  I
mean: External methods are nice to have when you have *no other
choice*, but they aren't something I'd want to debug and deal with
for object.

> > This makes things work MUCH better.  So there are work arounds.
> 
> This isn't a work-around, it is the way that it is intended to be used.

I didn't see a single example of it.  The Zope Book didn't mention
this at all (except as a single line reference).  I would *never*
have gone looking for the word column.  Why? It's a field!

> Again, I think that it's a matter of understanding how ZSQL works,
> rather than a limitation of ZSQL.  If you have column name conflicts,
> you can always use something like:
> 
> SELECT a.field as a_field, b.field as b_field FROM ...
> 
> Then refer to them in dtml like &dtml-a_field; or <dtml-var
> name="a_field">

Right, but you still have to do extra work to get them back into a
ZSQL object.  column lets you do that.  It's got no examples to help
out with.  It's documented once.  I didn't see it.  Life is better
now.

> > I still would love some examples.  Do people end up with 4 ZSQL
> > objects per thing they manipulate in their database?:
> > UPDATE, SELECT, INSERT and DELETE?  Or do they mix them somehow?
> 
> I typically wind up with a ZSQL method for each of the CRUD operations. 
> Sometimes I have separate selects methods for more complex joins, if the
> DTML code gets too ugly when I try to combine them into a single method.
>
> 
> Example of a fairly typical join statement (for MySQL database):
> 
> Arguments-
> begin_date:date end_date:date="2037-01-01"
> 
> SELECT search_string, search_result,  search_date, result_category,
> legal_category.name
> FROM search_log LEFT JOIN legal_category ON
> search_log.result_category=legal_category.code
> 
> <dtml-sqlgroup required where>
>   <dtml-sqltest name="begin_date" op="gt" type="nb"
>       column="search_date">
> <dtml-and>
>   <dtml-sqltest name="end_date" type="nb" op="lt"
>       column="search_date" optional>
> </dtml-sqlgroup>

Hey!  An example!

> Good Luck

Thanks.  So I'm still having trouble.  I can't get any of the list
examples to work.

I build a select multiple list, and then try to dtml-in on it.  It
doesn't seem to work.  REQUEST shows in it th other and form
namespaces, as a list, but I can't actually dtml-var it or anything.

Example:
q<dtml-var dalist>p
<br>
<dtml-in VirtualRootPhysicalPath>
d<dtml-var sequence-item>b
</dtml-in>
<hr>
<dtml-var REQUEST>

If you call this with this URL (substitute as needed):
http://docwhat.gerf.org:9673/links/test?dalist%0D%0A%3Alist=1&dalist%0D%0A%3Alist=3&dalist%0D%0A%3Alist=8

Which is the URL pattern formed by a <SELECT name="dalist:list"
multiple>....

Then you get errors on dalist.  The examples at
http://www.zope.org/Members/AlexR/SelectionLists

Don't work as exactl above.

Help?

Ciao!

-- 
Outside of a dog, a book is a man's best friend.  Inside a dog it's too dark to read.
        -- Groucho Marx

The Doctor What: Need I say more?                http://docwhat.gerf.org/
[EMAIL PROTECTED]                                                   KF6VNC

PGP signature

Reply via email to