MS SQL Server 2005 Abfrage mit Python

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Helpless
User
Beiträge: 7
Registriert: Donnerstag 5. Februar 2009, 12:09

MS SQL Server 2005 Abfrage mit Python

Beitragvon Helpless » Montag 9. Februar 2009, 11:25

Hallo,

Beschäftige mich erst seit kurzem mit Python und stehe vor folgendem Problem: Ich versuche ein Python-Script zu entwerfen, mit dem auf eine MS SQLSERVER 2005 Datenbank zugegriffen werden soll. Zunächst einmal soll dazu eine Ausgabe der vorhandenen Tabellen erfolgen. Doch wie bekomme ich die? Googlesuche brachte mir nur den Befehl "SHOW TABLES", dabei kommt es allerdings zur Fehlermeldung

Traceback (most recent call last):
File "C:\Dokumente und Einstellungen\nadine\Desktop\pyth\AbfrageNeu.py", line
43, in <module>
db.select()
File "C:\Dokumente und Einstellungen\nadine\Desktop\pyth\AbfrageNeu.py", line
23, in select
cur.execute("show tables")
dbi.program-error: [Microsoft][ODBC SQL Server Driver][SQL Server]Die gespeicher
te Prozedur 'show' wurde nicht gefunden. in EXEC


Muss ich dazu irgendein Modul importieren? (Bisher nur dbi und odbc) Oder gibt es vielleicht eine andere Möglichkeit, mir die Tabellennamen anzeigen zu lassen?

Vielen Dank im Vorraus
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: MS SQL Server 2005 Abfrage mit Python

Beitragvon gerold » Montag 9. Februar 2009, 12:01

Helpless hat geschrieben:(Bisher nur dbi und odbc) Oder gibt es vielleicht eine andere Möglichkeit, mir die Tabellennamen anzeigen zu lassen?

Hallo Helpless!

Mein Tipp: Verwende **pyodbc**. Das ist ausgereifter als das ODBC-Modul der win32-Erweiterung.

Der MS SQL-Server hat Systemtabellen, in denen alle Informationen abgefragt werden können. Suche in der Dokumentation z.B. nach "Systemtabellen", "Abrufen von Informationen" oder "sysobjects".

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Helpless
User
Beiträge: 7
Registriert: Donnerstag 5. Februar 2009, 12:09

Beitragvon Helpless » Montag 9. Februar 2009, 12:10

Hallo Gerold,
danke für die schnelle Antwort.
Der Versuch pyodbc zu importieren ergab folgendes:

Traceback (most recent call last):
File "C:\Dokumente und Einstellungen\nadine\Desktop\pyth\AbfrageNeu.py", line
3, in <module>
import pyodbc
ImportError: No module named pyodbc


unter den Systemtabellen finde ich nur sysdiagrams. Ene Abfrage nach deren Inhalt bringt mir aber leider keine Tabellennamen...
EyDu
User
Beiträge: 4866
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Beitragvon EyDu » Montag 9. Februar 2009, 12:22

Du musst vorher noch pyodbc installieren.
Das Leben ist wie ein Tennisball.
Helpless
User
Beiträge: 7
Registriert: Donnerstag 5. Februar 2009, 12:09

Beitragvon Helpless » Montag 9. Februar 2009, 13:29

oh, ok. Ist jetzt installiert, aber "Show" sei immernoch nicht bekannt.
Gibt´s denn keinen anderen Befehl? Irgendwie muss ich doch an die Tabellennamen rankommen...
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Montag 9. Februar 2009, 15:42

Helpless hat geschrieben:aber "Show" sei immernoch nicht bekannt

Hallo Helpless!

Das habe ich auch nicht geschrieben. Ich habe dir den Hinweis auf die Systemtabellen gegeben. Diese kannst du mit SELECT abfragen. Und die Information, welche Tabellen es gibt, findest du in der "sysobjects"-Tabelle.

Vergiss "SHOW". So etwas gibt es vielleicht für ein anderes Datenbankmanagementsystem -- aber nicht für den MS SQL-Server. Es kann natürlich sein, dass so etwas seit MS SQL-Server 2000 dazugekommen ist. Dann wäre es mir nicht aufgefallen, da ich die neueren Versionen nicht mehr benutze.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Montag 9. Februar 2009, 18:38

gerold hat geschrieben:Vergiss "SHOW". So etwas gibt es vielleicht für ein anderes Datenbankmanagementsystem -- aber nicht für den MS SQL-Server. Es kann natürlich sein, dass so etwas seit MS SQL-Server 2000 dazugekommen ist. Dann wäre es mir nicht aufgefallen, da ich die neueren Versionen nicht mehr benutze.

Oder es ist möglich, dass es einfach nur eine Erweiterung in der SQL-Konsole ist. ``psql`` hat auch massig Befehle wie ``\d`` und ``\dt`` etc. die nur in der Konsole gültig sind.
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder