* 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
<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:

Table1ID   <-- Foreign Key thrown in for fun.

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

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

> > 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.

q<dtml-var dalist>p
<dtml-in VirtualRootPhysicalPath>
d<dtml-var sequence-item>b
<dtml-var REQUEST>

If you call this with this URL (substitute as needed):

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

Then you get errors on dalist.  The examples at

Don't work as exactl above.



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