Re: InterfaceError: mxODBCursor_FetchMany called, but vars not set
"M.-A. Lemburg" <[email protected]> Wed, 13 Nov 2013 14:40:05 +0100
| Newsgroups | gmane.comp.python.egenix.user |
|---|---|
| Organization | eGenix.com Software GmbH; http://www.egenix.com/ |
| Message-ID | <[email protected]> |
As info for other users in a similar situation: It turned out that the 64-bit issue with unixODBC 2.2 va. 2.3 was the cause of the strange exception. A upgrade to mxODBC Zope DA 2.0.2, which also supports Python 2.4 and Zope 2.10 made the problem go away. On 07.11.2013 18:04, M.-A. Lemburg wrote: > On 07.11.2013 17:13, Nico Grubert wrote: >> Hi there >> >> I am trying to get the egenix mxODBC Zope Database adapeter running. >> >> I manage to add a "eGenix mxODBC Database Connection" in Zope and can connect to my ODBC data source successfully. >> When querying the ODBC data source with a simple [ select anycolumn from mytable ] I get the following error: >> >> mx.ODBC.Error.InterfaceError: mxODBCursor_FetchMany called, but vars not set > > This error message looks as if there was some other error causing > the problem, but which the ODBC driver doesn't report back to > mxODBC Zope DA. > >> From the command line I can use "isql" to query the ODBC data source without any problem and get the SQL results. >> >> My setup: >> CentOS 6 >> >> Python 2.4.6 >> Zope 2.10.13 >> egenix-mxodbc-zopeda-1.0.10.linux-x86_64-py2.4_ucs2 >> >> Unfortunately I cannot update Python and Zope at the moment because on my Zope instance there are some applications running which require Python 2.4.6 and Zope 2.10.13. >> >> Any tips are much appreciated. > > Please enable ODBC tracing and send the log to [email protected]: > > In order to enable logging at the ODBC driver manager level, > please follow these instructions: > > > 1. edit the odbc.ini file that defines the data source > you are using (usually /etc/odbc.ini or ~/.odbc.ini) > > 2. add two trace options to the data source in question: > > [MyDataSourceName] > Trace = On > TraceFile = /tmp/odbc.log > ... > > 3. restart Python and run a query on the connection > > You should then see the /tmp/odbc.log file fill up with > ODBC call trace messages. Error messages from the ODBC > driver should also appear in this file. > > In some cases you also have to edit the file > /etc/odbcinst.ini (or ~/.odbcinst.ini) and add a section: > > [ODBC] > Trace = On > TraceFile= /tmp/odbc.log > > > We will also need to know which database backend and ODBC > driver and ODBC manager you are using. > > Since you're using a 64-bit OS, it's also possible that > you're running into the SQLLEN type issue (unixODBC > switched from 32-bit to 64-bit some time ago, without > updating the lib version). mxODBC Zope DA 1.0.10 is not > compatible with unixODBC versions > 2.2.12 because of > this. > > If you are using unixODBC 2.3.0, please consider upgrading > to mxODBC Zope DA 2.0.2: > > http://www.egenix.com/products/zope/mxODBCZopeDA/2.0.2/ > > This works with your configuration as well. > -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source (#1, Nov 13 2013) >>> Python Projects, Consulting and Support ... http://www.egenix.com/ >>> mxODBC.Zope/Plone.Database.Adapter ... http://zope.egenix.com/ >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/ ________________________________________________________________________ 2013-11-19: Python Meeting Duesseldorf ... 6 days to go ::::: Try our mxODBC.Connect Python Database Interface for free ! :::::: eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 http://www.egenix.com/company/contact/ _______________________________________________________________________ eGenix.com User Mailing List http://www.egenix.com/ https://www.egenix.com/mailman/listinfo/egenix-users