[Zope] ZSybaseDA usage on Redhat Linux 5.2 with ASE 11.0.3.3?

Alexander Staubo alex@mop.no
Thu, 2 Sep 1999 19:45:03 +0200


Which Sybase DA product are you using?

There are currently two separate products:

- The unsupported ZSybaseDA 0.9 by Brian Hooper; and

- ZSybaseDC 2.1.0 by Digital Creations (is this one official yet? It is
not, that I could find, on any of the Zope sites)

Both are based on Peter Godman's ctsybase extension module.
Unfortunately, in my experience both products are not currently suitable
for production use. A quick summary follows.

Brian Hooper's version:

- This is currently the most stable, but the DA is not thread safe, so
Zope must to be run either using pcgi_publisher, or with ZServer in
single-threaded mode ("z2.py -t1" or "./start -t1").

- It does not escape control characters correctly, due (according to BH)
to code having been copied verbatim from the MySQL DA. I have a patch
for this.

- It does not support the "image" datatype out of the box. I have a
patch for this.

- A little shaky. It mostly works.

Digital Creation's version:

- Problem with committed transactions disappearing.

- Does not seem to support batch queries, even if the batch query is
something like:

	set dateformat dmy
      <dtml-var sql_delimiter>
	select * from foo

(it will incorrectly tell you that this can't be done because there are
multiple queries returning data.)

- Raises Unauthorized exception in conjunction with "int" columns that
contain "null" values.

Both versions:

Neither version supports long objects (eg., most images, and long text 
fields).

Neither version correctly handle "null" column values in conjunction
with "char"-class fields. Null values are returned as "None". I have
patch for BH's product for this.

Neither version correctly handles submittal of empty strings. [*] A
workaround is to insert all empty strings as nulls; I have a patch for
BH's product that does this.

Godman's ctsybase module _may_ suffer from a memory-corrupting bug that
slowly eats out of your Zope installation, requiring a restart to fix
things. So far this is just a theory.

[*] I admit I'm unfamiliar with Sybase -- I've only used this product
for about a month, although I have earlier with MSSQL (which is built
from the Sybase engine) (and MSSQL does not exhibit this anomaly) -- but
CT-Library's handling of empty strings is weird to say the least. It
turns out that if you do something like

	insert foo (bar) values ('')

then Sybase will insert the "bar" value as ' ' (one space). This happens
consistently with Zope, isql, and sqsh. Sybase doesn't seem to care
about trailing spaces at all. So 'abc' and 'abc ' (= 'abc' with one
trailing space) are both one and the same to Sybase, and it turns out
Sybase trims trailing spaces from the strings you input. So perhaps the
solution is to automatically trim all resulting varchar columns?

-- 
Alexander Staubo             http://www.mop.no/~alex/
"`Ford, you're turning into a penguin. Stop it.'"
--Douglas Adams, _The Hitchhiker's Guide to the Galaxy_

> -----Original Message-----
> From: Scott Anderson [mailto:sanderson@ttm.com]
> Sent: 2. september 1999 18:55
> To: zope@zope.org
> Subject: Re: [Zope] ZSybaseDA usage on Redhat Linux 5.2 with ASE
> 11.0.3.3?
> 
> 
> Excellent, that worked grandly.
> 
> Is the Sybase DA suitable for production use, do you think?
> 
> Regards,
> -scott anderson
> 
> > 
> > Ok, this indicates that the ctsybase.so module is not 
> linked correctly.
> > 
> > You'll need to edit the list of libraries in the Setup 
> file, and rebuild
> > the .so
> 
> _______________________________________________
> Zope maillist  -  Zope@zope.org
> http://www.zope.org/mailman/listinfo/zope
> 
> (To receive general Zope announcements, see:
> http://www.zope.org/mailman/listinfo/zope-announce
> 
> For developer-specific issues, zope-dev@zope.org -
> http://www.zope.org/mailman/listinfo/zope-dev )
>