[Zope] ZnolkSQLWizard 0.1.9 errors w/ PoPy_db.py

Eugene von Niederhausern evonnied@l4sb.com
10 Jun 2002 22:08:14 -0500


I am not sure how ZnolkSQLWizard works, but it sounds like an invalid
SQL statement is being sent to postgresql (maybe quoting for the wrong
data type??). I don't think it is ZPoPy. I would look at the sql
statements ZnoklSQL is sending to postgresql.



regards,

Eugene


On Mon, 2002-06-10 at 09:06, eric.n.dunn@bankofamerica.com wrote:
> 
> 
> Using Zope 2.5, Debian, Postgresql, ZnolkSQLWizard 0.1.9, ZPoPyDA
> 
> Insert and Browse forms work... but...
> 
> UpdateForm gives me the following error
> 
> Traceback (innermost last):
>   File /local/zope-2.5/lib/python/ZPublisher/Publish.py, line 150, in
> publish_module
>   File /local/zope-2.5/lib/python/ZPublisher/Publish.py, line 114, in
> publish
>   File /local/zope-2.5/lib/python/Zope/__init__.py, line 158, in
> zpublisher_exception_hook
>     (Object: DB)
>   File /local/zope-2.5/lib/python/ZPublisher/Publish.py, line 98, in publish
>   File /local/zope-2.5/lib/python/ZPublisher/mapply.py, line 88, in mapply
>     (Object: UserinfoUpdateForm)
>   File /local/zope-2.5/lib/python/ZPublisher/Publish.py, line 39, in
> call_object
>     (Object: UserinfoUpdateForm)
>   File /local/zope-2.5/lib/python/OFS/DTMLDocument.py, line 127, in __call__
>     (Object: UserinfoUpdateForm)
>   File /local/zope-2.5/lib/python/DocumentTemplate/DT_String.py, line 473,
> in __call__
>     (Object: UserinfoUpdateForm)
>   File /local/zope-2.5/lib/python/DocumentTemplate/DT_In.py, line 617, in
> renderwob
>     (Object: UserinfoPkSelectMethod)
>   File /local/zope-2.5/lib/python/Shared/DC/ZRDB/DA.py, line 421, in
> __call__
>     (Object: UserinfoPkSelectMethod)
>   File /local/zope-2.5/lib/python/Products/ZPoPyDA/PoPy_db.py, line 84, in
> query
> ProgrammingError: ERROR:  parser: parse error at or near ""
> 
> 
> Code from " PoPy_db.py"
> 
> 
> import string
> database_type='PoPy'
> 
> """%s Database Connection""" % database_type
> 
> from PoPy_db import DB
> from Shared.DC.ZRDB.Connection import *
> from PoPy_browser import *
> 
> addPoPyConnectionForm=DTMLFile(
>     'dtml/PoPyconnectionAdd',
>     globals(),
>     default_id='%s_database_connection' % database_type,
>     default_title='Z %s Database Connection' % database_type,
>     database_type=database_type,
>     )
> 
> def addPoPyConnection(self, id, title, connection_string,
> connected=None,attempts=10,seconds=5,REQUEST=None):
>     """Add a Z PoPy DB connection to a folder"""
> 
>     if not connected is None:
>         connected = 1
>     self._setObject(id, PoPyConnection(id,
>                                    title,
>                                    connection_string,
>                                    connected,
>                                    attempts,
>                                    seconds))
>     if REQUEST is not None:
>         return self.manage_main(self,REQUEST)
> 
> class PoPyConnection(Connection):
>     """A database connection object"""
>     database_type=database_type
>     id='%s_database_connection' % database_type
>     meta_type=title='Z %s Database Connection' % database_type
>     icon='misc_/Z%sDA/conn' % database_type
>     _isAnSQLConnection=1
> 
>     def __init__(self, id, title, connection_string, connected=None,
>                  attempts=10,seconds=5):
>         Connection.__init__(self,id,title,connection_string,connected)
>         self.attempts = attempts
>         self.seconds = seconds
> 
>         if self._v_connected:
>             self._v_database_connection.setAttempts(attempts,seconds)
> 
>     def manage_attempts (self, attempts,seconds,REQUEST):
>         " "
>         self.attempts = attempts
>         self.seconds = seconds
>         self._v_database_connection.setAttempts(attempts,seconds)
>         return self.manage_main(self,REQUEST)
> 
>     manage_main=DTMLFile('dtml/PoPyconnectionStatus', globals())
> 
>     manage_properties=DTMLFile('dtml/PoPyconnectionEdit', globals())
> 
>     def manage_edit(self, title, connection_string, connected=None,
> attempts=10,seconds=5,REQUEST=None):
>         """Change connection"""
> 
>         self.attempts = attempts
>         self.seconds = seconds
>         if self._v_connected:
>          self._v_database_connection.setAttempts(attempts,seconds)
> 
>         Connection.manage_edit(self,title,connection_string,connected)
> 
>     manage_testForm = DTMLFile('dtml/PoPyconnectionTestForm', globals())
> 
>     def factory(self): return DB
> 
>     def sql_quote__(self, v, escapes={
>         '\\': '\\\\',
>         '\"': '\\\"',
>         '\'': '\\\'',
>         '\0': '\\0',
>         '\n': '\\n',
>         '\t': '\\t',
>         '\r': '\\r',
>         '\b': '\\n',
>         }):
>         find=string.find
>         for c in "\\\"\'\0\n\t\r\b":
>             if find(v,c) > -1:
>                 v=string.join(string.split(v,c),escapes[c])
>         return "'%s'" % v
> 
> 
> 
> 
> _______________________________________________
> 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 )