Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

cx_Oracle 2.5

0 views
Skip to first unread message

Anthony Tuininga

unread,
Jul 16, 2002, 6:04:43 PM7/16/02
to
What is cx_Oracle?

cx_Oracle is a Python extension module that allows access to Oracle and
conforms to the Python database API 2.0 specifications with a few
exceptions.


Where do I get it?

http://computronix.com/utilities


What's new?

The primary focus of this release was increased performance in certain
key areas, elimination of unimplemented parts of the DB-API 2.0 and
increased usefulness in a threaded environment. The following list
details the changes made in no particular order.

1) Added flag OPT_NoOracle7 which, if set, assumes that connections
are being made to Oracle8 or higher databases; this allows for
eliminating the overhead in performing this check at connect time
2) Added flag OPT_NumbersAsStrings which, if set, returns all numbers
as strings rather than integers or floats; this flag is used when
defined variables are created (during select statements only)
3) Added flag OPT_Threading which, if set, uses OCI threading mode;
there is a significant performance degradation in this mode (about
15-20%) but it does allow threads to share connections (threadsafety
level 2 according to the Python Database API 2.0); note that in
order to support this, Oracle 8i or higher is now required
4) Added Py_BEGIN_ALLOW_THREADS and Py_END_ALLOW_THREADS pairs where
applicable to support threading during blocking OCI calls
5) Added global method attach() to cx_Oracle to support attaching to an
existing database handle (as provided by PowerBuilder, for example)
6) Eliminated the cursor method fetchbinds() which was used for
returning the list of bind variables after execution to get the
values of out variables; the cursor method setinputsizes() was
modified to return the list of bind variables and the cursor method
execute() was modified to return the list of defined variables in
the case of a select statement being executed; these variables have
three methods available to them: getvalue([<pos>]) to get the value
of a variable, setvalue(<pos>, <value>) to set its value and
copy(<var>, <src_pos>, <targ_pos>) to copy the value from a variable
in a more efficient manner than setvalue(getvalue())
7) Implemented cursor method executemany() which expects a list of
dictionaries for the arguments
8) Implemented cursor method callproc()
9) Added cursor method prepare() which parses (prepares) the statement
for execution; subsequent execute() or executemany() calls can pass
None as the statement which will imply use of the previously
prepared statement; used for high performance only
10) Added cursor method fetchraw() which will perform a raw fetch of the
cursor returning the number of rows thus fetched; this is used to
avoid the overhead of generating result sets; used for high
performance only
11) Added cursor method executemanyprepared() which is identical to the
method executemany() except that it takes a single argument which is
the number of times to execute a previously prepared statement and
it assumes that the bind variables already have their values set;
used for high performance only
12) Added support for rowid being returned in a select statement
13) Added support for comparing dates returned by cx_Oracle
14) Integrated patch from Andre Reitz to set the null ok flag in the
description attribute of the cursor
15) Integrated patch from Andre Reitz to setup.py to support compilation
with Python 1.5
16) Integrated patch from Benjamin Kearns to setup.py to support
compilation on Cygwin

--
Anthony Tuininga
ant...@computronix.com

Computronix
Distinctive Software. Real People.
Suite 200, 10216 - 124 Street NW
Edmonton, AB, Canada T5N 4A3
Phone: (780) 454-3700
Fax: (780) 454-3838
http://www.computronix.com

0 new messages