Gibt es eine Möglichkeit sich die "table werte" anzeigen zu lassen?
Also quasi von einem table personen
name vorname id ....
table info
Falls Spaltennamen gemeint sind und wir von einer SQL-Datenbank mit einem DB API 2.0 kompatiblen Modul reden, dann gibt es ein `description`-Attribut auf dem Cursor-Objekt: http://www.python.org/dev/peps/pep-0249/#description
»description« ist keine Funktion sonder ein Attribut.
Code: Alles auswählen
…
for description in cursor.description:
print description.name
…
Code: Alles auswählen
import sqlite3
connection = sqlite3.connect("hallo.db")
cursor = connection.cursor()
cursor.execute("SELECT * FROM personen")
for description in cursor.description:
print(description)
connection.close()
Code: Alles auswählen
('name', None, None, None, None, None, None)
('vorname', None, None, None, None, None, None)
('personalnummer', None, None, None, None, None, None)
('gehalt', None, None, None, None, None, None)
In der Dokumentation steht das name und type_code vorgeschrieben sind, müsste das erste None da nicht den Typ angeben?
Auch wird bei
print(description.name) ein Fehler zurück gegeben das der Tupel kein Attribut name hat - liegt das an meiner Version?
Ah - ist unnötig da sich Tupel ja mit description[0] - abfragen lassen.
SQLite ist ein wenig lax bezüglich Typdefinitionen für Spalten. Das sind eher Empfehlungen als echte Festlegungen.Tengel hat geschrieben:In der Dokumentation steht das name und type_code vorgeschrieben sind, müsste das erste None da nicht den Typ angeben?
Aus http://www.sqlite.org/datatype3.html: "With static typing, the datatype of a value is determined by its container - the particular column in which the value is stored. SQLite uses a more general dynamic type system. In SQLite, the datatype of a value is associated with the value itself, not with its container.".
Für mich ist SQLite eigentlich keine echte SQL-Datenbank sondern nur ein besserer Zettelkasten. Allerdings ist es ein sehr einfach einsetzbarer und schneller Zettelkasten.

@Tengel: In der Regel ja, aber wie das genau geht ist von Datenbanksystem zu Datenbanksystem unterschiedlich. Einige haben spezielle nicht standardisierte SQL-Anweisungen dafür, andere legen die Informationen in Tabellen ab, deren Namen man wissen muss um nachschauen zu können welche Tabellen es gibt.