German Herangehensweise für ein quiz

mcmanu

Active Member
Licensed User
Longtime User
Hi,

Ich hab mir überlegt ein Quiz zu Programmieren.
Nun überlege ich schon die ganze zeit wie ich die Fragen und Antworten hole.
endweder mittels xml Datei (jedoch ist das parsen langsam bei einer sehr großen xml Datei)
oder ich schreibe die Fragen und antworten in eine datenbank und lese diese aus.

Jedoch würde ich diese datebank dann in die assets und danach auf das Handy kopieren.
(Da die app offline funktionieren soll)

Nun meine Frage was denkt ihr ist der beste weg um das zu Realisieren?
Datenbank oder xml oder doch anders?
 

rbsoft

Active Member
Licensed User
Longtime User
Ich würde eine SQLite-Datenbank nehmen - klein, schnell und kompakt. Steht ja auch so auf der SQLite Homepage:

Small. Fast. Reliable. Choose any three.


Ich fand den Spruch immer großartig. Und er stimmt. XML hingegen ist langsam und bulky.

Ich programmiere sehr viel mit SQLite-Datenbanken, auch im Client-/Server-Bereich und benutze dafür SQLitening als Server. Irgendwann will ich mal einen Android-Client dafür schreiben.

Rolf
 

mcmanu

Active Member
Licensed User
Longtime User
Okay dann lag ich ja nicht so falsch was xml angeht :)
Vielen dank, dann werd ich das mit einer Sqllite datenbank machen :)

Danke :)
 

mcmanu

Active Member
Licensed User
Longtime User
Hallo,

Ich bauch eine Starthilfe.
ich habe eine Datenbank als datei "quizdb.sql"
Nun habe ich diese in die Assets gestellt.
mit SQL.Initialize(File.DirRootExternal, "quizdb.sql", True) Initialisiere ich die datenbank
Kopiere diese in das verzeichniss DirInternal.

Wie kann ich jetzt die Daten auslesen?

Meine felder sind wie folgt:
id
frage
antwort1
antwort2
antwort3
antwort4
information
stufe
richtigeantwort

Die Tabelle an sich heisst quiz.quiztable (also datenbank quiz, tabelle quiztable)

mit einem select command kann ich ja die Daten lesen bzw holen:
SELECT frage,antwort1,antwort2,antwort3,antwort4 FROM `quiz`.`quiztable` where stufe=1

Aber wie mache ich das in b4a? meine datei heisst ja "quizdb.sql"
woher weiss ich den namen der tabelle in FROM "...."
 

rbsoft

Active Member
Licensed User
Longtime User

mcmanu

Active Member
Licensed User
Longtime User
Vielen Vielen dank ;)

Und danke für die Links hab vorhin durch die suche nichts gefunden :)

Update: okay mein problem war wohl das ich die mysql datenbank nicht benutzen kann.

Update: Jetzt muss ich nochwas fragen sorry.

Ich habe diesen code:
B4X:
    Dim Cursor1 As Cursor
Dim SqlStr As String
SqlStr = "SELECT frage,antwort1,antwort2,antwort3,antwort4,richtigeantwort FROM quiztable where stufe=" & stufe
Cursor1 = SQL1.ExecQuery(SqlStr)
Cursor1.Position = 0 'Hier bekomme ich wenn ich die zweite frage holen will einen CourserIndexOutOfBounds Exception

Ich versteh aber nicht warum, wen ich mit dem select command genau den datensatz hole ist der courser index doch immer 0 (weil ich ja nur eine zeile bekomme) oder irr ich mich da?
 
Last edited:

mcmanu

Active Member
Licensed User
Longtime User
So habs schon gelöst das Problem, ich hatte in der Datenbank ein feld vertauscht ;)
 
Top