AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenbank- Quiz programmieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datenbank- Quiz programmieren

Offene Frage von "p80286"
Ein Thema von Reedx · begonnen am 8. Mär 2020 · letzter Beitrag vom 16. Mär 2020
Antwort Antwort
Seite 4 von 7   « Erste     234 56     Letzte »    
Reedx

Registriert seit: 19. Feb 2020
26 Beiträge
 
Delphi 7 Enterprise
 
#31

AW: Datenbank- Quiz programmieren

  Alt 8. Mär 2020, 16:46
Kannst du die Datenbankdatei und das Projekt mal hier anhängen?
datenbankdatei kann ich nicht anhängen, dann kommt "ungültiges Objekt"
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#32

AW: Datenbank- Quiz programmieren

  Alt 8. Mär 2020, 18:12
Wahrscheinlich ist es noch niemanden aufgefallen:
Delphi-Quellcode:
  Datamodule1.ADOQuery6.First;
  while not Datamodule1.ADOQuery6.Eof do
  begin
    Datamodule1.ADOQuery6.Next;

    //Frage in "Titel"
      rg.Caption:= Datamodule1.ADOQuery6.Fields[0].AsString;
    //Antworten in Radiobuttons
      rg.Items.Clear;
      rg.Items.Add(Datamodule1.ADOQuery6.Fields[0].AsString);
      rg.Items.Add(Datamodule1.ADOQuery6.Fields[1].AsString);
      rg.Items.Add(Datamodule1.ADOQuery6.Fields[2].AsString);
    end;
So wird immer die zweite Antwort verarbeitet. Wenn es nur eine Gibt, macht es bumm!

darum:
Delphi-Quellcode:
  Datamodule1.ADOQuery6.First;
  while not Datamodule1.ADOQuery6.Eof do
  begin
    //Frage in "Titel"
    rg.Caption:= Datamodule1.ADOQuery6.Fields[0].AsString;
    //Antworten in Radiobuttons
    rg.Items.Clear;
    rg.Items.Add(Datamodule1.ADOQuery6.Fields[0].AsString);
    rg.Items.Add(Datamodule1.ADOQuery6.Fields[1].AsString);
    rg.Items.Add(Datamodule1.ADOQuery6.Fields[2].AsString);
    Datamodule1.ADOQuery6.Next;{---- weiter zum nächsten Datensatz oder EOF}
  end;
Und da auch einmal nichts zurück kommen könnte:
Delphi-Quellcode:
  Datamodule1.ADOQuery6.First;
  if Datamodule1.ADOQuery6.Eof then
  begin
    showmessage('Es wurden keine daten gefunden');
  end
  else {---- es wurden Daten geliefert}
  repeat
    //Frage in "Titel"
    rg.Caption:= Datamodule1.ADOQuery6.Fields[0].AsString;
    //Antworten in Radiobuttons
    rg.Items.Clear;
    rg.Items.Add(Datamodule1.ADOQuery6.Fields[0].AsString);
    rg.Items.Add(Datamodule1.ADOQuery6.Fields[1].AsString);
    rg.Items.Add(Datamodule1.ADOQuery6.Fields[2].AsString);
    Datamodule1.ADOQuery6.Next;{---- weiter zum nächsten Datensatz oder EOF}
  until Datamodule1.ADOQuery6.Eof;
Das gefällt mir besser, aber das ist Geschmackssache.

Gruß
K-H

P.S.
Damals als ich noch in die Schule ging gab es Lehrer, die den falschen Beruf gewählt hatten und Schüler die selbst mit einfachen logischen Zusammenhängen überfordert waren. Ich vermute heute ist es nicht wesentlich anders, darum sollten wir uns jeden Kommentar zur Berufung einer Lehrperson oder eines Schülers verkneifen.
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 ( 8. Mär 2020 um 18:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#33

AW: Datenbank- Quiz programmieren

  Alt 8. Mär 2020, 18:27
Wieso wird denn immer in einer Schleife das Dataset durchlaufen? Ich würde ja bei der ersten Frage öffnen und bei Click auf den Button dann eins weiter positionieren. Oder übersehe ich da etwas?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#34

AW: Datenbank- Quiz programmieren

  Alt 8. Mär 2020, 19:18
Jetzt verunsicherst Du mich. "normal" liefert eine Query 0..n Datensätze zurück. Bei 0 ist EOF gleich true.
bekommst Du 1..n Datensätze mußt Du mit .Next dadurch scrollen bis das EOF true ist wenn Du alle Datensätze haben willat. Aber wie läuft das mit den TDB...Komponenten? sind sind die hier im Einsatz?
Ach ja .First ist direkt nach .Open nicht notwendig, da der Zeiger direkt auf dem ersten Datensatz steht. Dieser wird durch .Next erst auf den nächsten Datensatz verschoben.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#35

AW: Datenbank- Quiz programmieren

  Alt 8. Mär 2020, 19:34
Nach einem Open stehe ich auf dem ersten Datensatz oder auf Eof, wenn es keinen Datensatz gibt. Wozu jetzt die Schleife, ich will doch initial den ersten?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#36

AW: Datenbank- Quiz programmieren

  Alt 8. Mär 2020, 20:30
Gute Frage!
dann ist das also überflüssig und nicht nur ungeschickt.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#37

AW: Datenbank- Quiz programmieren

  Alt 8. Mär 2020, 21:09
Genau darauf will ich hinaus.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#38

AW: Datenbank- Quiz programmieren

  Alt 9. Mär 2020, 04:54
Moin...
Zitat:
Ich würde ja bei der ersten Frage öffnen und bei Click auf den Button dann eins weiter positionieren. Oder übersehe ich da etwas?
+1
(Poppcorn hol...) ... interessante Diskussion.

@TE:
Zitat:
Aber klar, Struktogramme usw. braucht man ja nicht.
@TE: ...damit wäre das eindeutig klar, daß du ein Logik/Verständnis Problem hast.

Zitat:
datenbankdatei kann ich nicht anhängen, dann kommt "ungültiges Objekt"
...das komplette Projekt und die Datenbank in ein ZIP.

Geändert von haentschman ( 9. Mär 2020 um 09:43 Uhr)
  Mit Zitat antworten Zitat
Reedx

Registriert seit: 19. Feb 2020
26 Beiträge
 
Delphi 7 Enterprise
 
#39

AW: Datenbank- Quiz programmieren

  Alt 9. Mär 2020, 17:08
hab es so programmiert, aber stehe immer noch vor dem gleichen Problem, beim click auf dem button bleibt die frage + Antworten immer die gleichen und zeigt nicht die nächsten an..

Delphi-Quellcode:
procedure TFormle.ButtonnextClick(Sender: TObject);
begin
 if lb.ItemIndex >=0 then
 begin
    rg.Visible:=true;
    Datamodule1.ADOQuery6.SQL.Clear;
    Datamodule1.ADOQuery6.SQL.Text:='SELECT Frage, L1, L2, L3 FROM Fragen WHERE Fach = ' +#39+lb.Items.Strings[lb.ItemIndex]+#39 +
                                    ' AND Schwierigkeit="1";';
    Datamodule1.ADOQuery6.Open;

     if Datamodule1.ADOQuery6.Eof then
     begin
       showmessage('Keine Daten');
     end else
     begin
      repeat
          //Frage in "Titel"
         rg.Caption:= Datamodule1.ADOQuery6.Fields[0].AsString;
         //Antworten in Radiobuttons
         rg.Items.Clear;
         rg.Items.Add(Datamodule1.ADOQuery6.Fields[1].AsString);
         rg.Items.Add(Datamodule1.ADOQuery6.Fields[2].AsString);
         rg.Items.Add(Datamodule1.ADOQuery6.Fields[3].AsString);
         Datamodule1.ADOQuery6.Next;
      until Datamodule1.AdoQuery6.Eof;
     end;
  end else
  begin
  application.MessageBox('Auswahlfehler!','Fehler');
  end;
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#40

AW: Datenbank- Quiz programmieren

  Alt 9. Mär 2020, 17:11
Schick mal alles in einem zip-Archiv hier rüber bitte.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 7   « Erste     234 56     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz