Seite 1 von 1

Datenbank Frage

Verfasst: 27.12.2012 00:14
von wpshadow
Hallo,

bin neu hier und habe gleich mal damit begonnen, etwas mit der Datenbank herum zu experimentieren. Ich habe das Datenbank - Beispiel he rgenommen und etwas experimentiert.

Im Hintergrund liegt eine kleine selbst gebastelte SQLite - Datenbank, die ganz simpel strukturiert ist: id als INTEGER, inhalt als VARCHAR(50)

Darin liegen ein paar Testdaten:

id inhalt
0 aaa
1 bbb
2 ccc

Bei meinem ersten Versuch hat es ohne Probleme funktioniert, jedoch habe ich nun versucht, die Informationen über die Funktionen "auswählbar" zu machen, also die Spalte, Table und die ID auswählbar zu machen. Könnt ihr mir vielleicht sagen, wo ich falsch denke? Hier ist der Code:

Code: Alles auswählen

Declare db_init()
Declare.s db_get(spalte.s, table.s, id.s)

EnableExplicit


db_init()
Debug db_get("inhalt", "foo", "1")



Procedure db_init()
  Protected ok.i, db_open.b = #False
  Protected db_req.b = #False
  Protected test$
  
  ok.i = FileSize("data/db/lrdb.s3db")
  
  If ok.i > 0
    UseSQLiteDatabase()
    db_open = #True
  Else    
    Debug ("Datei nicht gefunden")
    End
  EndIf
  
  OpenDatabase(0, "data/db/lrdb.s3db", "", "")
  
EndProcedure


Procedure.s db_get(spalte.s, table.s, id.s)
  Protected wert.s
  
      ;If OpenDatabase(0, "data/db/lrdb.s3db", "", "")
        If DatabaseQuery(0, "SELECT" + spalte + "FROM" + table + "WHERE id = " + id)
          
           While NextDatabaseRow(0)
             wert = GetDatabaseString(0, 0)
           Wend
           
            FinishDatabaseQuery(0)
         EndIf
       ;EndIf
         
    ProcedureReturn wert      
  
  EndProcedure
GLG

W.

Re: Datenbank Frage

Verfasst: 27.12.2012 00:33
von Bisonte
Da fehlen meines Erachtens Leerzeichen ...

z.B. so

Code: Alles auswählen

If DatabaseQuery(0, "SELECT " + spalte + " FROM " + table + " WHERE id = '" + id + "'")
P.S.: Welcome to the forum ;)

Re: Datenbank Frage

Verfasst: 27.12.2012 00:50
von wpshadow
Bisonte hat geschrieben:Da fehlen meines Erachtens Leerzeichen ...

z.B. so

Code: Alles auswählen

If DatabaseQuery(0, "SELECT " + spalte + " FROM " + table + " WHERE id = '" + id + "'")
Oh Mann, ja, das war es tatsächlich! Shame on me! :D

Danke für die schnelle Hilfe! Das hatte ich vollkommen übersehen!
Bisonte hat geschrieben:P.S.: Welcome to the forum ;)
Danke dir! Ich fühle mich jetzt schon wohl hier! :mrgreen:

Re: Datenbank Frage

Verfasst: 27.12.2012 12:57
von TheCreepyProgramer
Was mir auch noch aufgefallen ist: In der Funktion db_init() hast du eine Variable 2 mal definiert:

Code: Alles auswählen

  ok.i = FileSize("data/db/lrdb.s3db")
 
  If ok.i > 0
Im If-Teil muss das ".i" weg ;) Ansonsten wird das nicht so ganz funktionieren. In C würde z. B. der Compiler mit einer Fehlermeldung abbrechen.

Re: Datenbank Frage

Verfasst: 27.12.2012 13:18
von ts-soft
@TheCreepyProgramer

PureBasic ist ein BASIC, da braucht man den Suffix nicht weglassen, gerade für Einsteiger ist dieser sogar hilfreich und auf
keinen Fall ein Fehler. Bei den meisten Basic-Dialekten ist der Suffix sogar unbedingt erforderlich!

Re: Datenbank Frage

Verfasst: 27.12.2012 13:33
von wpshadow
Das bedeutet, daß es sowohl mit Suffix als auch ohne funktioniert...

Das ist gut zu wissen! Ich werde mal vorerst den Variablentypen dabei lassen --> das erhöht für mich vor allem die Lesbarkeit und führt im Augenblick auch dazu, daß ich einfach aufpassen muß und nichts vergesse :D