python newb braucht hilfe (python + sqlite)

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
KdB
User
Beiträge: 4
Registriert: Donnerstag 16. Oktober 2003, 09:32

zugegebner massen bin ich nen anfänger was das programieren angeht, hab zwar schon nen paar tutorials gelesen mich durch ein paar scripte gequält aber jetzt weiss ich net weiter.

hab des SQLite Module installiert und eine Datenbank + Tabelle angelegt in der SQ Lite console bis dahin kein Problem.

jetzt aber zu der Sache die mir Fragen aufwirft.

Code: Alles auswählen

import sqlite

class  sql_test:
    def insert(self):
        sq_connect = sqlite.connect(db="db.db", mode=077)
        c = sq_connect.cursor()
        c.execute("INSERT INTO kunden (FID_Anrede,Titel,Name,VName,Strasse,PLZ,Ort) VALUES (1,'prof.','muster','mann','musterweg 4',45259,'essen')")
        sq_connect.close()


    def list(self):
        sq_connect = sqlite.connect(db="db.db", mode=077)
        c = sq_connect.cursor()
        c.execute('select * from kunden')
        for row in c:
            print '\nID:',row
        sq_connect.close()

s = sql_test()
s.insert()
s.list()
^^ obiges Script hab ich einfach mal so zum testen geschrieben
einziges Problem was ich dabei habe die sachen die er insert werden beim list auch angezeigt verschwinden aber mit dem ende des Programms wieder d.h. sooft ich das Script auch starte es werden net ,mehr daten in der Datenbank.

Hoffe irgendwer kann mir mal nen paar tipps geben was ich falsch mache bzw was ich nicht richtig mache etc.

mfG Mario
gast

hi,
kenne mich zwar nicht mit sqlite aus habe aber mal ins modul geschaut,
was passiert wenn du nach der c.execute anweisung folgendes schreibst

Code: Alles auswählen

c.commit()
wenn autocommit eingeschaltet ist müßte eine fehlermeldung kommen wenn nicht müßten jetzt auch die daten gespeichert sein.
Gruß
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Ich glaube der Gast hat FRecht. Und die Homepage von SQLite sagt folgendes
SQLite hat geschrieben:SQLite is a small, fast, embeddable SQL database engine that supports most of SQL92, including transactions with atomic commit and rollback, subqueries, compound queries, triggers, and views.
Vielleicht muß man das automatic commit erst irgendwo aktivieren oder es soll bedeuten, das mit dem nächsten INSERT der vorherige Satz comitted wird. Solange kein commit erfolgt ist, kannst du die gemachten Änderungen mit rollback rückgängig machen.

Ich kenne SQLite zwar nicht, aber das ist allgemeine Praxis. Notfalls noch mal bei http://www.sqlite.org nachsehen.

Hans
Gast

thx hatte es schon rausgefunden als ich mir nen pyhtoncard beispiel angesehen hab aber trotzdem danke
Antworten