[egenix-users] InterfaceError: mxODBCursor_FetchMany called, but vars not set

M.-A. Lemburg mal at egenix.com
Wed Nov 13 14:40:05 CET 2013


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 support at egenix.com:
> 
> 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/



More information about the egenix-users mailing list