Wie funktionierne transaktionen mit oracle ?

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
maxip
User
Beiträge: 61
Registriert: Dienstag 11. März 2008, 09:43

Dienstag 18. März 2008, 17:52

Hi,

ich krieg einfach nicht raus, wie ich Transaktionen mache mit cx_Oracke.
so funktionierts leider nicht :(
ich krieg die constraints um den kopf geworfen...

Code: Alles auswählen

con=cx_Oracle.connect(user=cDB_user, password=cDB_pass, dsn=cDB_name, twophase="yes")
    transaction = con.begin()
    cursor=con.cursor()
    inserts = []
    updates = []
    for item in collect.devices_new_dhcp:
        query="select ipaddress from lhcb_ipinfo where ipname = '"+lower(item.devicename)+"'"
        cursor.execute(query)
        entry = cursor.fetchall()
        if(entry != None and len(entry) > 0):
            #update
            #print entry
            inserts.append( "UPDATE lhcb_ipinfo ipaddress VALUES('"+item.CIPadd+"') WHERE ipname = '"+lower(item.devicename)+"'" )
        else:
            #insert
            updates.append( "INSERT INTO lhcb_ipinfo (ipaddress, subnet_info, ipname) VALUES('"+item.CIPadd+"', '255.255.0.0', '"+lower(item.devicename)+"')" )
    for q in updates:
        cursor.execute(q)
        i += 1
    for q in inserts:
        cursor.execute(q)
        i += 1
    transaction.commit(1)
        #ToDo: Erfolgskontrolle
    cursor.close()
    con.close()
weiss einer wies geht ?

danke

ciao
maxip
User
Beiträge: 61
Registriert: Dienstag 11. März 2008, 09:43

Freitag 25. April 2008, 12:57

Niemand ? :shock:

Loesung ist ganz einfach: einfach ein commit als eigene Query senden


ciao
Antworten