Hi!
Ich weiß, die Frage ist wahrscheinlich trivial, aber: wie kann ich eine Verbindung mit einem MS-SQL 2005 Server herstellen?
Ich habe bereits gesucht und nur Hinweise auf das Modul "pymssql" gefunden. Leider finde ich mich da nicht zurecht - es hapert schon beim Herstellen der Verdindung (oder gar noch früher). Ich wäre sehr dankbar, wenn mir jemand einen Tip geben könnte. Danke!
MSSQL 2005 Verbindung herstellen?
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo C4S3!C4S3 hat geschrieben:Ich habe bereits gesucht und nur Hinweise auf das Modul "pymssql" gefunden.
Das pymssql-Modul ist eigentlich das was du brauchst. Du kannst aber auch auf eine normale ODBC-Verbindung zurückgreifen.
- pyODBC: http://pyodbc.sourceforge.net/
- pymssql: http://pymssql.sourceforge.net/
Beispiel mit pyODBC und Access:
- http://www.python-forum.de/topic-12658.html
Beispiele mit pyODBC und SQL-Server 2000:
- http://www.python-forum.de/topic-11057.html
- http://paste.pocoo.org/show/79406/
mfg
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Hi Gerold!
Danke für die Antwort.
Auf ODBC möchte ich, wenn möglich verzichten, sonst muss ich mich wieder auf jedem Client hinsetzen und das per Hand machen.
Aber gut zu wissen, dass ich mit pymssql auf dem richtigen Weg bin, auch wenn ich ständig ein Timeout bekomme, obwohl es mit anderen Sprachen funktioniert....
Ich werde einfach weiter Testen. Danke.
Danke für die Antwort.
Auf ODBC möchte ich, wenn möglich verzichten, sonst muss ich mich wieder auf jedem Client hinsetzen und das per Hand machen.
Aber gut zu wissen, dass ich mit pymssql auf dem richtigen Weg bin, auch wenn ich ständig ein Timeout bekomme, obwohl es mit anderen Sprachen funktioniert....

Ich werde einfach weiter Testen. Danke.
Gruß!
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo C4S3!C4S3 hat geschrieben:Auf ODBC möchte ich, wenn möglich verzichten, sonst muss ich mich wieder auf jedem Client hinsetzen und das per Hand machen.
Du musst keine ODBC-DSN einrichten. Die kannst du dir im Programm selbst zusammensetzen.
Schau dir dazu das hier an: http://paste.pocoo.org/show/79406/
Suche nach der Funktion ``get_connection``.
Und hier findest du die möglichen Connectionstrings:
http://www.python-forum.de/topic-14822.html
mfg
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Danke! Es war ein ziemliches Herumprobieren, aber schlussendlich habe ich "den" nötigen Connectionstring!
Wer also mal in die Verlegenheit kommt:
In dieser Reihenfolge mit dem "Driver" und der IP statt des Namens hat es funktioniert. Ich hänge nun zumindest mal am Server, bin aber von Abfragen noch weit, weit entfernt.
Gerold, danke für die Hilfe!
Wer also mal in die Verlegenheit kommt:
Code: Alles auswählen
cnxn = pyodbc.connect("DRIVER={SQL Server}; SERVER=192.168.0.250\Instanz; DATABASE=DBNAME; UID=username; PWD=passwort")
Gerold, danke für die Hilfe!
Gruß!
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo C4S3!C4S3 hat geschrieben:Ich hänge nun zumindest mal am Server, bin aber von Abfragen noch weit, weit entfernt.
An dem sollte es auch nicht scheitern. Ungetestetes Beispiel:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import pyodbc
SQL_ENCODING = "cp1252"
conn = pyodbc.connect(
"DRIVER={SQL Server};"
"SERVER=192.168.0.250\Instanz;"
"DATABASE=DBNAME;"
"UID=username;"
"PWD=passwort"
)
cur = conn.cursor()
sql = """
SELECT
vorname, nachname
FROM
adressen
WHERE
(ort = ?)
"""
ort = u"Überau".encode(SQL_ENCODING)
cur.execute(sql, (ort, ))
for (vorname, nachname) in cur:
print repr(vorname.decode(SQL_ENCODING))
print repr(nachname.decode(SQL_ENCODING))
cur.close()
conn.close()
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.