A Python DB-API 2.0 (PEP 249) module that makes it easy to use Microsoft ADO for connecting with databases and other data sources using CPython.
Home page: https://github.com/mhammond/pywin32/tree/main/adodbapi#readme
- 100% DB-API 2.0 (PEP 249) compliant (including most extensions and recommendations).
- Includes PyUnit testcases that describe how to use the module.
- Fully implemented in Python. -- runs in current versions of Python 3.
- Licensed under the LGPL license, which means that it can be used freely even in commercial programs subject to certain restrictions.
- The user can choose between paramstyles:
qmark
,named
,format
,pyformat
ordynamic
- Supports data retrieval by column name e.g.:
for row in myCurser.execute("select name,age from students"): print("Student", row.name, "is", row.age, "years old.")
- Supports user-definable system-to-Python data conversion functions (selected by ADO data type, or by column)
- Python 3.7 or higher
- (CPython on Windows): Install pywin32 (
pip install pywin32
) which includes adodbapi. - (IronPython on Windows): Refer to http://sf.net/projects/adodbapi instead.
If you do not like the new default operation of returning Numeric
columns as decimal.Decimal
, you can select other options by the user defined conversion feature.
Try:
adodbapi.apibase.variantConversions[adodbapi.ado_consts.adNumeric] = adodbapi.apibase.cvtString
or:
adodbapi.apibase.variantConversions[adodbapi.ado_consts.adNumeric] = adodbapi.apibase.cvtFloat
or:
adodbapi.apibase.variantConversions[adodbapi.ado_consts.adNumeric] = write_your_own_convertion_function
notes for 2.6.2:
- The definitive source has been moved to https://github.com/mhammond/pywin32/tree/master/adodbapi .
- Remote has proven too hard to configure and test with Pyro4. I am moving it to unsupported status until I can change to a different connection method.
what's new in version 2.6
- A
cursor.prepare()
method and support for prepared SQL statements. - Lots of refactoring, especially of the Remote and Server modules (still to be treated as Beta code).
- The quick start document
quick_reference.odt
will export as a nice-looking pdf. - Added paramstyles
pyformat
anddynamic
. If yourparamstyle
isnamed
you must pass a dictionary of parameters to your .execute() method. If yourparamstyle
isformat
pyformat
ordynamic
, you may pass a dictionary of parameters -- provided your SQL operation string is formatted correctly.
what's new in version 2.5
- Remote module: (works on Linux!) allows a Windows computer to serve ADO databases via PyRO
- Server module: PyRO server for ADO. Run using a command like
(server has simple connection string macros:
python -m adodbapi.server
is64bit
,getuser
,sql_provider
,auto_security
) - Brief documentation included. See adodbapi/examples folder adodbapi.rtf
- New connection method
conn.get_table_names()
--> list of names of tables in database - Vastly refactored. Data conversion things have been moved to the new
adodbapi.apibase
module. - Many former module-level attributes are now class attributes. (Should be more thread-safe)
- Connection objects are now context managers for transactions and will commit or rollback.
Cursor
objects are context managers and will automatically close themselves.- Autocommit can be switched on and off.
- Keyword and positional arguments on the
connect()
method work as documented in PEP 249 . - Keyword arguments from the
connect
call can be formatted into the connection string. - New keyword arguments defined, such as:
autocommit
,paramstyle
,remote_proxy
,remote_port
.
*** Breaking change:
variantConversion
lookups are simplified: the following will raiseKeyError
:Refactor as:oldconverter=adodbapi.variantConversions[adodbapi.adoStringTypes]
oldconverter=adodbapi.variantConversions[adodbapi.adoStringTypes[0]]
LGPL, see http://www.opensource.org/licenses/lgpl-license.php
- Look at adodbapi/quick_reference.md
- http://www.python.org/topics/database/DatabaseAPI-2.0.html
- read the examples in adodbapi/examples
- and look at the test cases in adodbapi/test directory.
The adodbapi mailing lists have been deactivated. Submit comments to the python-win32 mailing list .
- the bug tracker on https://sf.net/projects/adodbapi/ may be checked, (infrequently).
- please use: https://github.com/mhammond/pywin32/issues