Datenbankverbindung zu MS-SQL

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Senseo3
User
Beiträge: 24
Registriert: Donnerstag 2. April 2015, 08:37

Hallo,

ich will mich mit einem Raspi (Python2) mit einer MS-SQL Datenbank verbinden.
Im Internet habe ich einige gute Codes gefunden, welche:

Code: Alles auswählen

import _mssql

verwenden. Leider finde ich schon seit Stunden nicht, was ich installieren muss, damit der Import funktioniert.
Kennt sich damit jemand aus?

Ciao und Danke
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

Ich habe einmal das hier verwendet, allerdings auf einer Windows-Kiste. Ich weiß daher nicht ob noch weitere Clientsoftware nötig ist, oder das einfach so tut:

http://pymssql.org/
BlackJack

Wobei man sich IMHO die Verwendung von `_mssql` gut überlegen soll, ob man wirklich ein Modul verwenden möchte das nicht der Standard DB-API entspricht. Beziehungsweise ob man nicht gleich eine Abstraktionsschicht wie SQLAlchemy verwenden möchte.
Senseo3
User
Beiträge: 24
Registriert: Donnerstag 2. April 2015, 08:37

Hallo und danke für die Antworten. Leider beantwortet das nicht meine Frage, oder ich sehe es nicht.
Schade, den Sourcecode, welchen ich fand, würde 100%ig mein Problem lösen nur leider steht dort auch nicht, was ich installieren muss, damit der Import funktioniert.

Ciao Senseo3
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@Senseo3: ich hab zum Glück keinen MS-SQL-Server, deshalb kann ich auch nichts testen. Aber es gibt genug Anleitungen im Netz, um freetds zu installieren. Welche hast Du denn ausprobiert? Was für Fehlermeldungen gibt es? Übrigens würde ich auch pymssql verwenden. Hat die schönere API. Oder gleich SQLAlchemy.
Senseo3
User
Beiträge: 24
Registriert: Donnerstag 2. April 2015, 08:37

Hallo User,

na ja, mir ist es egal, wie ich an die Tabelle des SQL komme. Leider finde ich dazu nichts konkretes im Netz, was einigermaßen einfach zu handeln ist. Ich bin auch sicher nicht der Python/Linux Profi.
Hast, oder kennst Du vielleicht eine Anleitung?

Gruß S3
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

Angeblich ist doch alles im Paket-Manager drin:

Code: Alles auswählen

sudo apt-get install freetds-bin freetds-dev python-pymssql
Senseo3
User
Beiträge: 24
Registriert: Donnerstag 2. April 2015, 08:37

Hallo und vielen Dank für die Antwort. Wie gesagt, ich stehe gerade am Anfang von Linux und Co. Ich werde es sofort testen.


Ciao S3
Senseo3
User
Beiträge: 24
Registriert: Donnerstag 2. April 2015, 08:37

Vielen Dank,
das war es.

Ciao S3
BlackJack

@Senseo3: Nur noch mal das es nicht untergeht: Nicht `_mssql` benutzen wenn es dafür nicht einen wirklich guten Grund gibt. „Ich habe keine anderen Beispiele gefunden” ist definitiv kein guter Grund. ;-)
Senseo3
User
Beiträge: 24
Registriert: Donnerstag 2. April 2015, 08:37

Hallo BlJa,

das Programm funktioniert einwandfrei, die Zugriffe sind blitzschnell. Ich sehe keinen Grund für Deine Belehrung. 8)

MfG
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@Senseo3: der _ am Anfang des Namens sagt eindeutig, dass es sich um ein internes Modul handelt. Das bedeutet, dass sich die Funktionen ändern können und sich von einer Version zur anderen ganz anders verhalten. Die Funktionen können sehr strikte Vorgaben haben, welche Art Parameter sie erwarten die Fehlerbehandlung könnte unvollständig sein. Das sind alles Punkte, die man als normaler Programmierer nicht haben will. Daher gibt es ja auch das offizielle Modul pymssql. Dieses hat eine definierte gut dokumentierte Schnittstelle und verhält sich kompatibel zu einer Vielzahl anderer Datenbankanbindungen, so dass ein Wechsel der Datenbank mit vertretbarem Aufwand möglich wäre. Für Dich als Neuling ist es vom Aufwand her egal, ob Du die richtige API lernst, oder irgendwelches interne Zeugs, das Du vielleicht morgen schon wieder in die Tonne treten kannst.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Senseo3 hat geschrieben:Ich sehe keinen Grund für Deine Belehrung. 8)
Ich schon, denn es geht hier nicht nur um Dich! Auch andere, sogar unangemeldete Benutzer können diesen Thread mitlesen und sollten dann eben gute und richtige Ratschläge bekommen ;-) (und man ist überrascht, wie oft man bei Google einen Thread aus diesem Board ganz weit oben findet)

Dir steht es natürlich frei, diese zu ignorieren - aber notwendig sind sie dennoch :!:
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten