transactions and MS SQL Server 7.0
Alex Martelli
alex at magenta.com
Wed Aug 2 12:20:46 EDT 2000
<jeffcjohnson at my-deja.com> wrote in message
news:8m9853$oa2$1 at nnrp1.deja.com...
> Thanks for the info, I'll look into ADO. I also downloaded mxODBC but
> haven't installed it yet. Are there pros and cons for each? ADO makes
> me nervous because it sounds proprietary and who knows when I'll have
> to switch to Sybase or whatever. I'd prefer to stick to open standards
> unless there is a good reason not to..
ADO is a 'proprietary standard' (yeah, I know, we do oxymorons by the
dozen:-) just like good old ODBC is/was. The ADO layer provides ease
of programming (particularly for the user of scripting languages) and it
rests upon 'OLE/Db', which is a lower-level interface set. Anybody can
release OLE/Db providers for whatever data-sources, and ADO-using
programs will be able to communicate with the data-sources.
For example, 'Attunity Connect' (what a name...!-), a UK firm, claim:
"Attunity Connect offers open interfaces such as XML, ADO/OLE DB,
ODBC, and JDBC for client applications" and support Sybase among
other databases (http://www.isg.co.uk/),
Merant, a US firm (http://www.merant.com/) supply the "Merant
DataDirect" products, including "DataDirect Connect ADO" which
supports Informix, Microsoft, Oracle, Sybase, & other data sources.
Information Builders (http://www.ibi.com/products/eda/ole_db.html)
supply EDA OLE DB Connector, supporting 35 families of data
sources, including SyBase.
You can find a few more listed (far from an exhaustive list, of
course, but still quite nice) at:
http://ourworld.compuserve.com/homepages/Ken_North/oledbVen.htm
Plus, of course, one thing you can always do with ADO is connect it
to a 'generic OLE DB provider on top of ODBC' which in turn can use
any ODBC data source and present it to you a la OLEdb, and so via
ADO. This may have some overhead wrt a direct usage of ODBC,
like a direct/native OLEDB provider has some performance advantage
(at least potentially) wrt ODBC, but I don't think that one can measure
it when using a high-level language such as Python (or VB, or ...); if
that level of overhad one way or another was so crucial to you, I think
you'd be programming in C++:-). Anyway, the existence of the freely
redistributable OLEDB-on-top-of-ODBC ensures that the connectivity
of your ADO-using programs cannot be any smaller than if they used
ODBC directly (and it _can_ be higher -- OLAP, XML, etc, etc).
I _do_ understand the general issue of future-portability-concerns, but
that is why I mentioned the Python Database API -- *that* one lets you
port your programs to other _platforms_, such as Linux rather than NT,
not just to other DBs. mxODBC can support that, I believe. And if you
make some effort, you can also use Gadfly (almost-database-API
compliant, I'm told) and see you programs really scream if/when the
database is small enough to fit...!-)
On the other hand, ADO's higher-level view of things (including, but I
don't think this has Sybase support yet, the ADOX extensions for DDL
and security) facilitates porting *between databases* by smoothing
over some of their many niggling differences in terms of SQL dialects
and so on. So, while currently tying you to Microsoft platforms, it does
make life quite a bit easier in terms of moving between databases,
and its Recordset objects in particular are _very_ easy to use for all
sorts of nice things. Which is why I think it's worth considering if your
programs are tied to Windows anyway for other reasons...
Alex
More information about the Python-list
mailing list