Seite 1 von 3

Listendarstellung

Verfasst: 27.05.2022 12:07
von Wolfvater Loki
Ich möchte mit einem ListIconGadget eine Tabelle anzeigen lassen, die ich in einer Datenbank gespeichert habe. Alles ist fertig und trotzdem zeigt mir dieser Gadget nichts an.

Code: Alles auswählen

UseSQLiteDatabase()
OpenDatabase(0,"Karten.db","","")

OpenWindow(1,0,0,1100,600,"",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ListIconGadget(1,5,5,1090,500,"Kartenname",100,#PB_ListIcon_FullRowSelect)
AddGadgetColumn(1,1,"Kartentyp",80)
AddGadgetColumn(1,2,"Kategorie",100)
AddGadgetColumn(1,3,"Typ",100)
AddGadgetColumn(1,4,"Fähigkeit",100)
AddGadgetColumn(1,5,"Attribut",100)
AddGadgetColumn(1,6,"Level/Rang/Link",100)
AddGadgetColumn(1,7,"ATK",60)
AddGadgetColumn(1,8,"DEF",60)
AddGadgetColumn(1,9,"Pendelskala",100)
AddGadgetColumn(1,10,"Erlaubt",60)
AddGadgetColumn(1,11,"Internetlink",100)
ButtonGadget(2,10,515,100,20,"")
Repeat
  event = WaitWindowEvent()
  If event = #PB_Event_Gadget
    Select EventGadget()
      Case 2
        sql$ = "SELECT * FROM YGO_Kartensammlung;"
        If DatabaseQuery(0,sql$)
          auswerten = Val(sql$)
          For i = 1 To 11
            SetGadgetItemData(1,auswerten,i)
          Next
        EndIf
    EndSelect
  EndIf
Until event = #PB_Event_CloseWindow
CloseDatabase(0)
End
Ich hoffe einer kann mir bei diesem Problem helfen.
MfG
Wolfvater Loki

Re: Listendarstellung

Verfasst: 27.05.2022 12:19
von Kiffi
OpenDatabase() versucht mit Sicherheit, Deine Datenbank im Temp-Ordner zu öffnen (dort, wo PB in aller Regel den Code kompiliert und ausführt). Liegt dort die Karten.db (und ist größer als 0 Bytes)? Wenn nicht, dann aktiviere in den Compiler-Optionen die Checkbox "Temporäre Executable im Quellcode-Verzeichnis erstellen" (ich nehme an, dort liegt Deine Datenbank).

Du solltest auch immer den Rückgabewert von OpenDatabase() prüfen.

Re: Listendarstellung

Verfasst: 27.05.2022 12:24
von Wolfvater Loki
Beide Dateien liegen aber im selben Ordner. Ist das egal? Also ich meine, ob die Dateien im selben Ordner sind.

Re: Listendarstellung

Verfasst: 27.05.2022 13:09
von Kiffi
Wie schon geschrieben: Wenn Du Deinen Code startest, dann kompiliert ihn PB defaultmäßig in den Temp-Ordner und führt ihn dort aus. Dort sucht Dein Programm die Datenbank. Deine Datenbank liegt aber dort, wo Deine PB-Datei liegt (wenn mich meine Glaskugel nicht irreführt). Aktiviere in den Compiler-Optionen die Checkbox "Temporäre Executable im Quellcode-Verzeichnis erstellen".

Re: Listendarstellung

Verfasst: 27.05.2022 13:39
von Wolfvater Loki
Ich hab's mal probiert. Geht immer noch nicht.

Re: Listendarstellung

Verfasst: 27.05.2022 13:54
von jacdelad
Der Code funktioniert nicht, du musst neue Zeilen im ListIconGadget mit AddGadgetItem() hinzufügen. Und deine Auswertung der Datenbankeinträge ist auch falsch, du benötigst eine Schleife (siehe Hilfedatei) mit NextDatabaseEntry().

Re: Listendarstellung

Verfasst: 27.05.2022 13:59
von Wolfvater Loki
Meinst du NextDatabaseRow()?

Re: Listendarstellung

Verfasst: 27.05.2022 14:05
von jacdelad
Äh ja, natürlich. Sorry.

Re: Listendarstellung

Verfasst: 27.05.2022 14:11
von Wolfvater Loki
Das mit der Verwechslung ist nicht schlimm.
Danke für den Tipp mit der Schleife. Jetzt brauche ich nur noch etwas Hilfe beim Text darstellen.

Re: Listendarstellung

Verfasst: 27.05.2022 14:32
von Wolfvater Loki
Und nochmal eine kurze Frage: Kann man bei den AddGadgetColumn()-Befehl, der ja neue Spalten erstellt, das auch mit der Datenbank verbinden?