Avoir des problèmes avec UnixODBC, FreeTDS et PyODBC
Donc je vais avoir beaucoup de difficulté à être tous les trois de ces à travailler ensemble en harmonie. Je crois que je vais la liste de toutes les différentes configurations, avec le code de test pour voir si une paire de yeux frais peut rendre compte de ma bêtise.
Je suis sous 12.04 Unbuntu Serveur et je vais essayer de vous connecter à un Serveur MSSQL 2008 et la fin de l'utiliser avec PyODBC.
Cependant, au moment de la mise en
tsql -S T2 -U Foo -P Bar
- Je obtenir le
1>
2>
3>
4>
5>
6>
7>
8>
9>
10>
11>
et etc.
De toute façon, si quelqu'un serait capable de l'aider (et je vous serais éternellement reconnaissant si vous pouvez effacer moi de cette brume), voici mes configurations actuelles.
C'est mon /etc/odbc.ini
[ODBC Data Sources]
odbcname = MySQL
T2 = MSSQL
[odbcname]
Driver = /usr/lib/odbc/libmyodbc.so
Description = MyODBC 3.51 Driver DSN
SERVER = Foobar
PORT = 3306
USER = Foo
Password = Bar
Database = Foobar
OPTION = 3
SOCKET =
[T2]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
SERVER = FOOBAR
PORT = 1433
USER = Foo
Password = Bar
Database = Foobar
OPTION = 3
SOCKET =
[Default]
Driver = /usr/local/lib/libmyodbc3.so
Description = MyODBC 3.51 Driver DSN
SERVER = FOOBAR
PORT = 3306
USER = foo
Password = bar
Database = FOOBAR
OPTION = 3
SOCKET =
Voici mon /etc/odbcinst.ini
[FreeTDS]
Description=FreeTDS Driver
Driver=/usr/lib/odbc/libtdsodbc.so
Setup=/usr/lib/odbc/libtdsS.so
CPTimeout=
CPReuse=
FileUsage=1
Ce qui suit est mon freetds.conf
# This file is installed by FreeTDS if no file by the same
# name is found in the installation directory.
#
# For information about the layout of this file and its settings,
# see the freetds.conf manpage "man freetds.conf".
# Global settings are overridden by those in a database
# server specific section
[global]
# TDS protocol version
; tds version = 4.2
# Whether to write a TDSDUMP file for diagnostic purposes
# (setting this to /tmp is insecure on a multi-user system)
; dump file = /tmp/freetds.log
; debug flags = 0xffff
# Command and connection timeouts
; timeout = 10
; connect timeout = 10
# If you get out-of-memory errors, it may mean that your client
# is trying to allocate a huge buffer for a TEXT field.
# Try setting 'text size' to a more reasonable limit
#text size = 64512
[T2]
host = FOOBAR
port = 1433
tds version = 7.0
client charset = UTF-8
text size = 20971520
[global]
# TDS protocol version
tds version = 7.0
Et mon Python fichier de test, pour faire bonne mesure
import pyodbc
import sys
try:
#tempsystrends = pyodbc.connect('DRIVER=FreeTDS;SERVER=FOOBAR;PORT=1433;DATABASE=T2;UID=FOO;PWD=bar;TDS_Version=7.0;')
cursor = tempsystrends.cursor()
except pyodbc.Error as e:
print "Error: %s" % (e.args[1])
sys.exit(1)
source d'informationauteur Anthony Tantillo
Vous devez vous connecter pour publier un commentaire.
- Je me connecter à différentes bases de données via PHP avec UnixODBC, voici ma configuration pour un Serveur Microsoft SQL server:
/etc/odbc.ini
/etc/odbcinst.ini
/etc/freetds/freetds.conf
Puis de tester votre connexion:
En fonction de votre environnement
username
peut-être sous la forme: domaine\nom d'utilisateurAprès l'émission de la commande que vous devriez voir quelque chose comme: