#5246: MS SQL Server backend using pyodbc. ----------------------------------------------------------+----------------- Reporter: Filip Wasilewski <[EMAIL PROTECTED]> | Owner: adrian Status: new | Component: Database wrapper Version: SVN | Keywords: mssql pyodbc database backend Stage: Unreviewed | Has_patch: 1 ----------------------------------------------------------+----------------- Note: The code is partially based on the #5062 ticket with several fixes, modifications and improvements applied. == Main features: == - Uses pyodbc (http://pyodbc.sourceforge.net) as the database driver. This seems to be the most mature SQL Server driver for Python and __is still maintained__, which is a __big__ plus compared to other SQL Server drivers like adodbapi and pymssql. Pyodbc is also used by SQLAlchemy for SQL Server connections. - Native Unicode support. Every string that goes in is stored as Unicode, and every string that goes out of the database is returned as Unicode. No conversion to/from intermediate encodings takes place, so things like `max_length` in `CharFiled` works just like expected. - Limit/offset supported in SQL Server 2005 and SQL Server 2000. Yay! - Both Windows Authentication (Integrated Security) and SQL Server Authentication supported. - Passes most of the model test cases. The tests that don't work out of the box are: - empty: Corner-case. As far as I know SQL Server 2005 does not support that. There seems to be little use of it at all. - lookup: Regular expressions are not supported out of the box. Only simple wildcard matching with %, _ and [] character classes. - serializers: Forward references cause foreign key constraint violation. - Tested with SQL Server 2005 Express SP2 and SQL Server 2000 SP4, Python 2.5 and Windows XP. == Open issues: == - SQL Server collation support. I have added a collation parameter to the `Field` constructor to see how this will work. - Is case sensitive/insensitive comparison using explicit collations a sensible thing? - Introspection not tested yet. - Support for ODBC specific configuration -- see module doc in base.py for DATABASE_SETTINGS options. - SQL Server 2005 specific: `nvarchar(max)` instead of `ntext` is used for storing `TextField` data. This allows for exact matching (`__exact`, `=`) on this field type. (Unicode text parameters are passed to the SQL Server as `nvarchars`, but the comparison of `nvarchar` with `ntext` is not supported.) [[BR]] Note: `nvarchar(max)` type is not supported on previous SQL Server versions and some additional magic may be required. For now the exact matching on `TextFields` will not work in older versions. Almost there...
-- Ticket URL: <http://code.djangoproject.com/ticket/5246> Django Code <http://code.djangoproject.com/> The web framework for perfectionists with deadlines --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django updates" group. To post to this group, send email to django-updates@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-updates?hl=en -~----------~----~----~----~------~----~------~--~---