diff options
| author | Gord Thompson <gord@gordthompson.com> | 2022-03-04 11:13:14 -0700 |
|---|---|---|
| committer | Gord Thompson <gord@gordthompson.com> | 2022-03-04 11:14:03 -0700 |
| commit | 8316e21e3821f678cf4c0ecbc9df5e360ddb5668 (patch) | |
| tree | a3d5fff46a984e0c3c4c01b6270656b985b1b0fa /lib/sqlalchemy/dialects/mssql | |
| parent | a6e3e0e0422fc638b8717c0e1ba991e5d02984c4 (diff) | |
| download | sqlalchemy-8316e21e3821f678cf4c0ecbc9df5e360ddb5668.tar.gz | |
Add LongAsMax note to mssql+pyodbc dialect docs
Change-Id: I4491b188bae49ac615f8691dd9b7a8a341428ce7
Diffstat (limited to 'lib/sqlalchemy/dialects/mssql')
| -rw-r--r-- | lib/sqlalchemy/dialects/mssql/pyodbc.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/sqlalchemy/dialects/mssql/pyodbc.py b/lib/sqlalchemy/dialects/mssql/pyodbc.py index 0951f219b..530a0a480 100644 --- a/lib/sqlalchemy/dialects/mssql/pyodbc.py +++ b/lib/sqlalchemy/dialects/mssql/pyodbc.py @@ -179,6 +179,33 @@ at both the pyodbc and engine levels:: isolation_level="AUTOCOMMIT" ) +Avoiding sending large string parameters as TEXT/NTEXT +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +By default, for historical reasons, Microsoft's ODBC drivers for SQL Server +send long string parameters (greater than 4000 SBCS characters or 2000 Unicode +characters) as TEXT/NTEXT values. TEXT and NTEXT have been deprecated for many +years and are starting to cause compatibility issues with newer versions of +SQL_Server/Azure. For example, see `this +issue <https://github.com/mkleehammer/pyodbc/issues/835>`_. + +Starting with ODBC Driver 18 for SQL Server we can override the legacy +behavior and pass long strings as varchar(max)/nvarchar(max) using the +``LongAsMax=Yes`` connection string parameter:: + + connection_url = sa.engine.URL.create( + "mssql+pyodbc", + username="scott", + password="tiger", + host="mssqlserver.example.com", + database="mydb", + query={ + "driver": "ODBC Driver 18 for SQL Server", + "LongAsMax": "Yes", + }, + ) + + Pyodbc Pooling / connection close behavior ------------------------------------------ |
