Seite 1 von 1

Attributeerror, aber wieso?

Verfasst: Donnerstag 24. Mai 2012, 13:06
von FrostByteGER
Moin,

ich habe folgendes Problem:
Ich arbeite momentan an einem kleinen einfachen Datenbankmodul womit ich meine Konten meiner Bankklasse besser sortieren und speichern kann. Soweit so gut, aber momentan bekomme ich immer einen AttributeError, beim Versuch "self.cur.execute(CREATE TABLE....)" auszuführen. ich kann mir leider nicht zusammenreimen wieso.

Genauer Fehlertraceback:

Code: Alles auswählen

  File "H:\Eclipse Workspace\Python - Bankklasse\src\Database.py", line 74, in <module>
    main.createTable()
  File "H:\Eclipse Workspace\Python - Bankklasse\src\Database.py", line 37, in createTable
    self.connection.execute("""CREATE TABLE Customers(
AttributeError: ARTEMISDB instance has no attribute 'connection'
Hier mal meiner kompletter Code:

Code: Alles auswählen

import sqlite3

class ARTEMISDB():

    def __init__(self):
        pass
    
    def createDB(self):
        self.connection = sqlite3.connect("ARTEMIS_Database.db")
        self.cur = connection.cursor()


#----------------------------------------------------------------------------

    def checkDB(self):
    
        try:
            db = open("ARTEMIS_Database.db")
            print "Database found, loading tables"
        
        except IOError:
            print "Database not found, creating one..."
            createDB()

#----------------------------------------------------------------------------
    
    def createTable(self):
    
        self.cur.execute("""CREATE TABLE Customers(
                                              Name TEXT,
                                              Surname TEXT,
                                              Age TEXT,
                                              Customernumber TEXT)""")
        
        self.connection.commit()
                                              
        self.cur.execute("""CREATE TABLE Accounts(
                                             Accountnumber TEXT,
                                             PIN INTEGER,
                                             Value INTEGER,
                                             Currency TEXT)""")
                                             
        self.connection.commit()

#----------------------------------------------------------------------------

    def loadDB(self):
        pass

#----------------------------------------------------------------------------

    def saveDB(self):
        pass

#----------------------------------------------------------------------------

    def editDB(self):
        pass

#----------------------------------------------------------------------------
                        
if __name__=="__main__":
    
    main = ARTEMISDB()
    main.checkDB()
    main.createTable()
Mein Konstruktor ist momentan noch leer, da ich noch keine komplette Liste mit den einzelnen benötigten Variablen habe(Bekomme ich erst am Abend von meinem Freund)

Connection in den Konstruktor zu schmeissen macht keinen Sinn, da ich den ja extra mit einer Methode bei bedarf aufrufen will.

Kann mir einer evtl. helfen?

Re: Attributeerror, aber wieso?

Verfasst: Donnerstag 24. Mai 2012, 13:16
von EyDu
Hallo.

Woher soll createTable denn auch wissen, dass es so etwas wie self.cur gibt? Das wird ja von dir vorher nirgends angelegt. Hast du vielleicht einfach vergessen createDB aufzurufen?

Bei deinem nächsten Fehler solltest du am besten auch den ganzen Traceback posten, der gibt nämlich an, wo sich der Fehler befindet, was für ein Fehler genau aufgetreten ist wie man zum Fehler gelangt ist. Dann spart man sich das suchen im Quellcode.

Sebastian

Re: Attributeerror, aber wieso?

Verfasst: Donnerstag 24. Mai 2012, 13:26
von FrostByteGER
omg ich muss mich jetzt echt selbst schämen :oops: :mrgreen:
Ich hab ganz vergessen, dass die Datenbank ja angelegt wird, da ich das Programm mehrfach durchlaufen hab lassen, existiert ja bereits eine. Daher lädt der ja die CreateTable() Methode garnicht...

Und ich such seit ner Stunde den Fehler-.-

Shit bin ich wieder mal genial >.<

Re: Attributeerror, aber wieso?

Verfasst: Freitag 25. Mai 2012, 01:32
von anogayales
Und bitte lass dieses

Code: Alles auswählen

#----------------------------------------------------------------------------
das ist sowas von nervig! :evil:

Edit: nicht böse gemeint :)

Grüße,
anogayales

Re: Attributeerror, aber wieso?

Verfasst: Donnerstag 31. Mai 2012, 11:51
von FrostByteGER
xD Das verwende ich gerne zum trennen der einzelnen Methoden/Funktionen^^

Re: Attributeerror, aber wieso?

Verfasst: Donnerstag 31. Mai 2012, 11:54
von Hyperion
FrostByteGER hat geschrieben:xD Das verwende ich gerne zum trennen der einzelnen Methoden/Funktionen^^
Reichen Dir da zwei Leerzeilen nicht? ;-)

Re: Attributeerror, aber wieso?

Verfasst: Donnerstag 31. Mai 2012, 13:42
von jbs
Ich sag mal so. Das letzte mal, dass ich sowas gesehen habe, war an einer Berufsschule im schönen Utbremen ;).