[Zope-dev] ZSybaseDA 1.0.1 and MS-SQL (was Re: ANN: ZSybaseDA 1.0.1)

Anthony Baxter Anthony Baxter <anthony@interlink.com.au>
Tue, 31 Aug 1999 20:33:02 +1000


>>> Michel Pelletier wrote
> Here is the official ZSybaseDA.  Currently, the ZSybaseDA is a level 2
> DA, meaning that it will work with a threaded Zope, but all transactions
> with all other level 2 DAs are serialized in the transaction manager.
> The ZSybaseDA REQUIRES Zope 2.0!

I've grabbed this to try against MS SQL 6.5 (the previous version, in
the Contrib area, works ok, but not on Zope2)

I'm attempting to connect from a Linux (RH5.2ish) box using Sybase client
libs from Sybase ASE 11.0.3.3 to MS-SQL 6.5sp3.

The SQL Method 
select count(name) as cnt from sysobjects

gives the following when you try to do a Test:

      Error, SybaseError: ct_cursor failed 

       ct_cursor(): user api layer: external error: The connection's capabilities do not support this type of request. 

Traceback (innermost last):
  File /raid/zope/zope2/lib/python/ZPublisher/Publish.py, line 214, in publish_module
  File /raid/zope/zope2/lib/python/ZPublisher/Publish.py, line 179, in publish
  File /raid/zope/zope2/lib/python/Zope/__init__.py, line 201, in zpublisher_exception_hook
    (Object: testsyb)
  File /raid/zope/zope2/lib/python/ZPublisher/Publish.py, line 165, in publish
  File /raid/zope/zope2/lib/python/ZPublisher/mapply.py, line 154, in mapply
    (Object: manage_test)
  File /raid/zope/zope2/lib/python/ZPublisher/Publish.py, line 102, in call_object
    (Object: manage_test)
  File /raid/zope/zope2/lib/python/Shared/DC/ZRDB/DA.py, line 316, in manage_test
    (Object: testsyb)
  File /raid/zope/zope2/lib/python/Shared/DC/ZRDB/DA.py, line 297, in manage_test
    (Object: testsyb)
  File /raid/zope/zope2/lib/python/Shared/DC/ZRDB/DA.py, line 401, in __call__
    (Object: testsyb)
  File /raid/zope/zope2/lib/python/Products/ZSybaseDA/db.py, line 219, in query
SybaseError: (see above)

A subsequent request gives:

Error, SybaseError: ct_cursor failed 

       The rollback transaction request has no corresponding BEGIN TRANSACTION. 
       ct_results(): user api layer: external error: This routine cannot be called when the command structure is idle. 
       ct_cursor(): user api layer: external error: The connection's capabilities do not support this type of request. 

SQL used:

select count(name) as cnt from sysobjects

Traceback (innermost last):
(same as above)

Before I dive into this (whimper, whimper), anyone got suggestions?

Using sqsh with the above query (and the same connection string) works fine,
btw.

Anthony