TreeGadget - Probleme mit Übergabe von Daten aus DB (SQLite)

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: TreeGadget - Probleme mit Übergabe von Daten aus DB (SQLite)

Beitrag von mk-soft »

Fehler gefunden. NextDatabaseRow(0)" fehlt

Beispiel

Code: Alles auswählen

UseSQLiteDatabase()

dbname.s = ":memory:"

If OpenDatabase(0, dbname, "", "")
  Debug "Verbunden mit " + dbname
  If DatabaseUpdate(0, "CREATE TABLE info (test VARCHAR(255));")
    Debug "Tabelle erstellt"
    For i = 1 To 10
      Debug "Insert..."
      sql.s = "INSERT INTO info (test) VALUES ('" + "Nummer " + Str(i) + "')"
      If DatabaseUpdate(0, sql) = 0
        Debug DatabaseError()
      EndIf
    Next i
    
    Debug "Select Count..."
    sql = "SELECT count(*) FROM info"
    If DatabaseQuery(0, sql) <> 0
      While NextDatabaseRow(0)
        Debug "Anzahl: " + GetDatabaseString(0, 0)
      Wend
    Else
      Debug DatabaseError()
    EndIf
  EndIf
EndIf
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Ruun
Beiträge: 8
Registriert: 11.01.2010 05:54

Re: TreeGadget - Probleme mit Übergabe von Daten aus DB (SQLite)

Beitrag von Ruun »

mk-soft hat geschrieben:Fehler gefunden. NextDatabaseRow(0)" fehlt
Also doch in einer Schleife, was ich etwas komisch finde. Mehr, daß es dafür nicht direkt einen Befehl gibt, wie eben CountGadgetItems.
So habe ich es jetzt eingebaut und es geht dann so auch, weil ja die Datenbank (@ Kiffi) schon offen ist:

Code: Alles auswählen

; Anzahl der Einträge ermitteln
	If DatabaseQuery(0, "select count(*) from alben") <> 0

		While NextDatabaseRow(0)

			Debug "Anzahl: " + GetDatabaseString(0, 0)
			StatusBarText(StatusBar_Window_Main, 1, "Anzahl: " + GetDatabaseString(0, 0))
			
		Wend

	EndIf
Problem hier ist nur, Debug gibt mir nichts aus, nur in die Statusbar wird es eingefügt. Irgendeine falsche Programmeinstellung?

Danke erstmal und bis zum nächsten Problem! ;-)


Ruun
### PB 4.40 (Demo) ### WinXP Pro ###
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: TreeGadget - Probleme mit Übergabe von Daten aus DB (SQLite)

Beitrag von Kiffi »

Ruun hat geschrieben:Also doch in einer Schleife, was ich etwas komisch finde.
ja, eine Schleife, die genau 1mal durchlaufen wird. :-)

Select Count(*) liefert genau eine Zeile zurück. NextDatabaseRow()
benötigt man, um den Datenzeiger auf genau diese Zeile zu hieven.

Ebenso könnte man schreiben:

Code: Alles auswählen

If DatabaseQuery(0, "select count(*) from alben") <> 0
  NextDatabaseRow(0)
  Debug "Anzahl: " + GetDatabaseString(0, 0)
  FinishDatabaseQuery(0)
EndIf
Ruun hat geschrieben:Mehr, daß es dafür nicht direkt einen Befehl gibt, wie eben CountGadgetItems.
Nicht, dass Du da was durcheinanderbringst: Das eine (SQL) hat
primär nichts mit dem anderen (PB) zu tun. In PB kann man sich
über SQL mit der Datenbank 'unterhalten'. Select, Insert, Update
und Delete sind keine PB-Befehle.

Und noch einmal zurück zu Deiner Kategorie-Tabelle:
Ruun hat geschrieben:da die Kategorien ja die Anfangsbuchstaben der Bands sind
in diesem Fall benötigst Du keine Kategorien-Tabelle, sondern kannst es
sofort mit folgendem Query lösen:

Code: Alles auswählen

select substr(band, 1, 1) As Initial, band, album from alben
order by band, album 
Grüße ... Kiffi
a²+b²=mc²
Ruun
Beiträge: 8
Registriert: 11.01.2010 05:54

Re: TreeGadget - Probleme mit Übergabe von Daten aus DB (SQLite)

Beitrag von Ruun »

Kiffi hat geschrieben:
Ruun hat geschrieben:Also doch in einer Schleife, was ich etwas komisch finde.
ja, eine Schleife, die genau 1mal durchlaufen wird. :-)

Select Count(*) liefert genau eine Zeile zurück. NextDatabaseRow()
benötigt man, um den Datenzeiger auf genau diese Zeile zu hieven.

Ebenso könnte man schreiben:

Code: Alles auswählen

If DatabaseQuery(0, "select count(*) from alben") <> 0
  NextDatabaseRow(0)
  Debug "Anzahl: " + GetDatabaseString(0, 0)
  FinishDatabaseQuery(0)
EndIf
Darauf muß man als Leie aber erstmal kommen. ;-)
Kiffi hat geschrieben:
Ruun hat geschrieben:Mehr, daß es dafür nicht direkt einen Befehl gibt, wie eben CountGadgetItems.
Nicht, dass Du da was durcheinanderbringst: Das eine (SQL) hat
primär nichts mit dem anderen (PB) zu tun. In PB kann man sich
über SQL mit der Datenbank 'unterhalten'. Select, Insert, Update
und Delete sind keine PB-Befehle.
Ja die nicht, aber NextDatabaseRow schon, daher könnte man ja der Annahme sein, daß es eben sowas wie CountTableRowItems gibt. Natürlich weiß ich nicht, wie man das realisieren könnte, aber schön wäre es.
Kiffi hat geschrieben:Und noch einmal zurück zu Deiner Kategorie-Tabelle:
Ruun hat geschrieben:da die Kategorien ja die Anfangsbuchstaben der Bands sind
in diesem Fall benötigst Du keine Kategorien-Tabelle, sondern kannst es
sofort mit folgendem Query lösen:

Code: Alles auswählen

select substr(band, 1, 1) As Initial, band, album from alben
order by band, album 
So ähnlich hatte ich das schonmal mit PHP gelöst. Aber wie schonmal erwähnt: Mir ist der Weg jetzt hier erstmal lieber, um mit PB besser vertraut so werden. So schwanke ich momentan noch zwischen C# und eben PB. Beide grundverschieden, aber von der Einfachheit steht PB schon vorne. Grundsätzlich ist es mein Ziel, in ein paar Jahren mit programmieren meine Brötchen zu verdienen. Mit PB eher von daheim aus, also selbstständig, mit C# in irgendeiner Softwareschmiede oder sonstwo, als Angestellter. Bin mir noch nicht so sicher, Ideen sind viele und gute da. Aber ok, ich bin weg vom Thema und versuche mich jetzt an der Ereignisauswertung. :-)


Ruun
### PB 4.40 (Demo) ### WinXP Pro ###
Benutzeravatar
dige
Beiträge: 1239
Registriert: 08.09.2004 08:53

Re: TreeGadget - Probleme mit Übergabe von Daten aus DB (SQLite)

Beitrag von dige »

Kiffi hat geschrieben:Grüße ... Kiffi
@Kiffi, wollt nur mal sagen wegen Deinem neuen Avatar, selba doof! ;-P
Ne mal im Ernst, kannst Du den QR Code mit PB erstellen?
"Papa, ich laufe schneller - dann ist es nicht so weit."
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: TreeGadget - Probleme mit Übergabe von Daten aus DB (SQLite)

Beitrag von Kiffi »

<OT>
dige hat geschrieben:kannst Du den QR Code mit PB erstellen?
leider nicht. Ich habe lediglich zwei nette Generatoren gefunden,
mit denen ich ein wenig herumgespielt habe:

http://goqr.me/
http://zxing.appspot.com/generator/

Grüße ... Kiffi

</OT>
a²+b²=mc²
Antworten