Anfängerproblem mit Datenbankabfrage

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
DaCarlo
User
Beiträge: 3
Registriert: Mittwoch 27. März 2019, 18:56

Hallo zusammen,

mein Name ist Carlo und versuche gerade mein Glück mit Python :-)
Aktuell versuche ich gerade lesend auf eine bestehende Datenbank zuzugreifen.
Leider scheitere ich gerade an einer Fehlermeldung, bei der mir auch Google nicht weiterhelfen konnte. Ich hab auch noch in ein paar Bücher gewälzt, finde aber keine Lösung - vielleicht sehe ich auch den Wald vor lauter Bäumen nicht :-(
Vielleicht habt ihr einen Hinweis für mich was ich da falsch mache.

Code: Alles auswählen

C:\Users\Carlo>python
Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import jaydebeapi
>>> conn = jaydebeapi.connect("org.hsqldb.jdbcDriver","jdbc:hsqldb:file://blablabla/gKFZ/Fakturama/Database/Database",["xxx", ""], "C:/Programme/Fakturama2/plugins/hsqldb.jar",)
>>> vAbfrage="SELECT * FROM public.public.fkt_document"
>>> curs=conn.cursor()
>>> print(vAbfrage)
SELECT * FROM public.public.fkt_document
>>> curs.execute(vAbfrage)
>>> for dsatz in curs:
...     print(dsatz[1])
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'Cursor' object is not iterable
>>>
Schöne Grüße,
Carlo
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ein Weg besteht im Aufruf von fetchall() auf dem cursor. DAS ist dann dein Ergebnis über das du iterieren kannst.
Benutzeravatar
sparrow
User
Beiträge: 4183
Registriert: Freitag 17. April 2009, 10:28

Was __deets__ sagt, ist korrekt.
Leider ist das nicht bei allen Datenbankmodulen gleich. Bei sqlite3 würde es so funktionieren, wie du es versuchst.
Antworten