Microsoft SQL Server
- commercial/proprietary software, although a free (gratis) edition "SQL Server 2008 R2 Express" is available
- Windows 2000 and later
- SQL Server is a robust and fully-featured database, and it performs very well. Moreover, I have not had any problems using this database with Python.
- The SQL Server Express versions are free to download, use and can even be redistributed with products.
- Windows only.
- SQL Server comes in various flavours. The latest free version has a 10GB database size limit. It comes with the GUI tools and Reporting Services. The standard and other versions include many extra features.
DB API 2.0 Drivers
- Windows only
- Windows and Unix
- eGenix.com Commercial License
- Windows, Unix, Mac OSX, FreeBSD, Solaris
mxODBC requires an ODBC driver to talk to SQL Server. On Windows, this comes with SQL Server, on the other platforms, there are several commercial ODBC high quality drivers available, an open-source FreeTDS ODBC driver for Unix platforms and a free MS SQL Server Native Client ODBC driver for Linux x64.
Unicode is supported both for data and SQL statements. mxODBC supports both 32-bit and 64-bit platforms.
- Windows, Linux, MacOS X, FreeBSD, Solaris, Any (source provided)
- Python versions
- 2.4 - 3.2
Actively maintained Open Source project.
Precompiled binaries are available for Windows. RedHat Enterprise Linux, Centos, and Fedora have precompiled RPMs available in their Extras repositories.
Supports ANSI and Unicode data and SQL statements and includes an extensive set of unit tests for SQL Server.
- Windows, Linux
- Python versions
- 2.4 - 3.3
Almost totally same usage as pyodbc ( can be seen as a re-implementation of pyodbc in pure Python ).
Simple - the whole module is implemented in a single python script with less than 3000 lines.
Built-in Access MDB file creation and compression functions on Windows.
It is possible to connect to an SQL Server database using ODBC, either the mxODBC driver or the one included with Win32all. However, this is not recommended - adodbapi is a better solution, in part because it supports unicode.
Comment: This is actually not true at all: ODBC is the native API used for SQL Server and does support Unicode all the way. In fact, ODBC is the preferred way of accessing SQL Server if you care for performance. Microsoft has just released the SQL Server Native Client which is an extended ODBC driver for SQL Server. ADO is just a layer on top of the ODBC interface and a lot slower as a result. See e.g. MS TechNet for a comparison of ODBC, OLE DB and ADO, or this cookbook entry.
Comment: Note about the comment above -- just because it should be pointed out, mxODBC is not a free product from what I can see, and the 'cookbook entry' from 2005 referenced above indicates that it is.