summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/mssql
diff options
context:
space:
mode:
authorGord Thompson <gord@gordthompson.com>2022-03-04 11:13:14 -0700
committerGord Thompson <gord@gordthompson.com>2022-03-04 11:14:03 -0700
commit8316e21e3821f678cf4c0ecbc9df5e360ddb5668 (patch)
treea3d5fff46a984e0c3c4c01b6270656b985b1b0fa /lib/sqlalchemy/dialects/mssql
parenta6e3e0e0422fc638b8717c0e1ba991e5d02984c4 (diff)
downloadsqlalchemy-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.py27
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
------------------------------------------