Seite 2 von 2

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

Verfasst: 12.01.2010 21:17
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

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

Verfasst: 12.01.2010 21:55
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

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

Verfasst: 12.01.2010 23:02
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

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

Verfasst: 13.01.2010 08:00
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

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

Verfasst: 14.01.2010 11:35
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?

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

Verfasst: 14.01.2010 11:52
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>