Verwenden von FreeTDS und Python3.5-Bibliothek PyPyodbc Ich erhalte eine 'Byte string too long'
beim Versuch, eine Zeile in der SQL Server-Datenbank (unter Windows) einzufügen. Unter FreeTDS conf-Datei gibt es eine vairable 'text size'
, die ich geändert:Byte Zeichenfolge zu lang PyPyOdbc
[global]
text size = 4294967295
Hier ist die Konfigurationsdateien
/etc/freetds/freetds.conf
[global]
tds version = 4.2
text size = 4294967295
[sqlserver]
host = 192.168.0.3
port = 1433
tds version = 8.0
/etc/odbc.ini
[sqlserverdatasource]
Driver = freetds
Description = SQL Server
Servername = sqlserver
Database = MyDB
TDS_Version = 8.0
/etc/odbcinst.ini
[freetds]
Description = MS SQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
Trace = Yes
TraceFile = /tmp/freetds.log
FileUsage = 1
UsageCount = 1
Executing 'tsql -C'
:
Compile-time settings (established with the "configure" script)
Version: freetds v0.91
freetds.conf directory: /etc/freetds
MS db-lib source compatibility: no
Sybase binary compatibility: yes
Thread safety: yes
iconv library: yes
TDS version: 4.2
iODBC: no
unixodbc: yes
SSPI "trusted" logins: no
Kerberos: yes
Executing '/usr/bin/tsql -S 192.168.0.3 -U user'
:
Password:
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
Executing 'odbcinst -j'
:
unixODBC 2.3.1
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/metheUser/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
Python PyPyodbc Verbindungszeichenfolge:
connStr = 'DSN=sqlserverdatasource;Database=MyDB;uid=user;pwd=password'
Aber der Fehler weiterhin angezeigt wird, was mir fehlt?
Geben Sie Ihren Code ein. Wir müssen auch die SQL-Tabellendefinition kennen. – Mike
Derselbe Befehl wurde direkt aus SQL Management Studio ausgeführt und es funktionierte. Die Spalte ist nvarchar (MAX). Ich suche jetzt, warum FreeTDS weiterhin Version 4.2 verwendet, wenn Sie den folgenden Befehl ausführen: tsql -C – user0187409
@ user0187409 - Versuchen Sie 'TDS_Version = 7.3' zu Ihrer Verbindungszeichenfolge (oder DSN-Eintrag in odbc.ini) hinzuzufügen und sehen Sie, ob das hilft (ref: [hier] (http://www.freetds.org/userguide/odbcconnattr.htm)). –