ok, da ich mal wieder nich vorran komm, meine nächste frage
hier nochmal kurz die rahmengeschichte dazu:
ich muss mit python eine access datenbank auf fehler untersuchen und diese fehler korrigieren. durchsucht wird die tabelle regel20 in der spalte PA_INFO. in der tabelle regel20 in der spalte PA_INFO_TEXTNR steht eine referenznummer hinter der sich in tabelle TEXTE der originaltext verbirgt. es soll also abgeglichen werden ob der text in regel20.pa_info mit dem original in texte.tex_ausgabe übereinstimmt.
hier der code den ich bisher habe:
Code: Alles auswählen
import dbi
import odbc
conn = odbc.odbc('DRIVER=Microsoft Access-Treiber (*.mdb);UID=admin;DBQ=C:\\temp\\T100_V46.mdb')
cur = conn.cursor()
sql = "SELECT DISTINCT PA_INFO, PA_INFO_TEXTNR, TEX_AUSGABE FROM Regel20, TEXTE WHERE REGEL20.PA_INFO_TEXTNR = TEXTE.TEX_NUMMER and TEXTE.TEX_SPRACHE ='deu' and REGEL20.PA_INFO <> TEXTE.TEX_AUSGABE" #where PA_INFO like '%Runden%'
cur.execute(sql)
rows = cur.fetchall()
cur.close()
conn.close()
for row in rows:
# row[0], fuer das erste Element in der SQL anweisung, row[1] fuer das zweite usw...
string1 = row[0]
string2 = row[2]
print string1
print row[1]
print string2
print
conn = odbc.odbc('DRIVER=Microsoft Access-Treiber (*.mdb);UID=admin;DBQ=C:\\temp\\T100_V46.mdb')
cur = conn.cursor()
cur.execute("UPDATE REGEL20 SET PA_INFO = '" + string2 + "' WHERE '" + string1 + "' <> '" + string2 + "' and REGEL20.PA_INFO_TEXTNR = TEXTE.TEX_NUMMER and TEXTE.TEX_SPRACHE='deu'")
cur.close()
conn.close()
wenn in der tabelle regel20 jetzt alles korrekt ist läuft das script und bringt keine fehler. wenn ich jetzt aber einen wert verändere, und dieser dann automatisch korrigiert werden soll, was ja sinn und zweck der übung ist, kommt dieser fehler:
Code: Alles auswählen
Traceback (most recent call last):
File "Y:\....\spe4.py", line 23, in ?
cur.execute("UPDATE REGEL20 SET PA_INFO = '" + string2 + "' WHERE '" + strin
g1 + "' <> '" + string2 + "' and REGEL20.PA_INFO_TEXTNR = TEXTE.TEX_NUMMER and T
EXTE.TEX_SPRACHE='deu'")
dbi.program-error: [Microsoft][ODBC Microsoft Access Driver] 2 Parameter wurden
erwartet, aber es wurden zu wenig Parameter ³bergeben. in EXEC
ich weis, das etwas an meiner 2. SQL Abfrage mit dem Update was nicht stimmt, ich komm aber nicht drauf

[img]http://img73.imageshack.us/img73/9951/stigismiley9cp.gif[/img] read between the lines for better smelling socks [img]http://img73.imageshack.us/img73/9951/stigismiley9cp.gif[/img]