[Zope-DB] Dynamically generate sql-query in ZSQL Method
    Ian Bicking 
    ianb at colorstudy.com
       
    Tue Apr  6 19:12:12 EDT 2004
    
    
  
On Apr 6, 2004, at 3:23 PM, Jim Penny wrote:
> Ian has told you how to do it.  Now, I will tell you, don't do it.
I would disagree with you -- not for some principled reason, but for a 
very practical reason: Z SQL Methods suck.  A lot.  A huge, huge 
amount.  They are horrible.  Generating your own SQL inline sucks.  A 
lot.  It is horrible.  *Sometimes* the inline method is less horrible.  
These are the unfortunate choices foisted upon us by the environment.
(Actually, it's Z SQL plus the ZMI plus DTML that is the real poison, 
IMHO -- they all work together to make things extra unpleasant)
Note also that well designed SQL generation in Python isn't horrible.  
A Python script like:
## select_all
## parameters: table_name
# re isn't available in the default Zope installation; I'd actually 
usually
# do this with an extension method...
import re
assert re.search(r'^[a-zA-Z_][a-zA-Z0-9_]*$', table_name), "Invalid 
table name: %s" % table_name
return container.raw_sql(sql='SELECT * FROM %s' % table_name)
That isn't so bad.  In fact, I would assert it is much better than the 
Z SQL analog.
--
Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org
    
    
More information about the Zope-DB
mailing list