Sybase module 0.9 released
Dave Cole
djc@object-craft.com.au
16 Nov 2000 11:06:24 +1100
What is it:
The Sybase module provides a Python interface to the Sybase relational
database system. The Sybase package supports almost all of the Python
Database API, version 2.0 with extensions.
The module works with Python versions 1.5.2 and later and Sybase
versions 11.0.3 and later. It is based on the Sybase Client Library
(ct_* API), and the Bulk-Library Client (blk_* API) interfaces.
Changes:
- A Numeric object exposes the Sybase numeric / decimal data type to
Python. Columns of type numeric / decimal will be returned as
Numeric objects.
Numeric objects can be used in almost all places as other Python
number objects. The following operations have been implemented; +,
-, *, /, int(), float(), long(), str(), cmp(), repr(), hash(),
abs().
A Numeric object has two readonly attributes; precision, and scale.
You can create a new Numeric object by using the
Sybase.numeric(value) function. This will convert the int / long /
float / string object passed as value to Numeric.
At the moment, money and money4 types are still transformed into
float objects because I have not worked out how to tell the Sybase
library to generate the right number of decimal places in arithmetic
results. For example:
You can pickle the new numeric data type.
>>> import Sybase
>>> n = Sybase.numeric(100200300400500L)
>>> n.precision, n.scale
(77, 0)
>>> m = Sybase.numeric(n, 30, 2)
>>> m
100200300400500.00
>>> m.precision, m.scale
(30, 2)
If you want to increase the scale without modifying the precision,
pass -1 as the precision.
>>> m = Sybase.numeric(n, -1, 4)
>>> m
100200300400500.0000
>>> m.precision, m.scale
(77, 4)
Where can you get it:
http://www.object-craft.com.au/projects/sybase/
- Dave
--
http://www.object-craft.com.au