Access Datenbanken

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Aquerias
User
Beiträge: 28
Registriert: Freitag 28. September 2007, 10:33

Vielen Dank für die Tipps,

hat gut funktioniert.

Quellcode:

Code: Alles auswählen

>>> import pyodbc
>>> conn = pyodbc.connect("DRIVER=Microsoft Access Driver (*.mdb);UID=admin;DBQ=C:\\Test.mdb")
>>> def select_countries(conn):
... 	sql = """
... 	SELECT ID, ContinentID, CountryCode, CountryNameDE, CountryNameEN, Important
... 	FROM Countries
... 	"""
... 	cur = conn.cursor()
... 	cur.execute(sql)
... 	return cur
... 
>>> coun_cursor = select_countries(conn)
>>> for row in coun_cursor:
... 	print row.ID, row.ContinentID, row.CountryCode, row.CountryNameDE, row.CountryNameEN, row.Important
... 
>>> conn.close()
Nun werde ich versuchen die erhaltenen Infos in eine XML-Datei zu speichern. So wie ich gesehen habe ist dieser "ElementTree" recht nützlich.

Danke nochmals.

Aquerias
Aquerias
User
Beiträge: 28
Registriert: Freitag 28. September 2007, 10:33

Hallo,

nachdem das verbinden mit der Datenbank und das exportieren der Daten so gut funktioniert, wollte ich auch den umgekehrten Weg testen. Also mit Python auf die Datenbank zugreifen und Tabellen Einträge ändern. Nach einiger Sucherei im Internet bin ich auf folgenden Code gestoßen:

Code: Alles auswählen

>>> import sys, string, os, random, win32com.client
>>> conn = win32com.client.Dispatch(r'ADODB.Connection')
>>> DSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:\\Test.mdb;'
>>> sql = "UPDATE Tab1 SET Tab1.Spalte1 = 20 WHERE (((Tab1.Spalte2)=118) AND ((Tab1.Spalte3)=50))"
>>> conn.Open(DSN)
>>> conn.Execute(sql)
(<COMObject Execute>, 3)
>>> conn.Close()

Das ganze funktioniert wunderbar. Ich habe für den Datenexport aus Access allerdings pyodbc verwendet.

Meine Frage: Was ist der unterschied zwischen pyodbc und win32com? Gibt es überhaupt einen? Wie würde der Code mit pyodbc aussehen?

Gruß

Aquerias
Antworten