Einzelnen Beitrag anzeigen

Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#49

AW: Datenbank- Quiz programmieren

  Alt 10. Mär 2020, 08:30
Guten Morgen,

Delphi-Quellcode:
procedure TFormle.ButtonnextClick(Sender: TObject);
var
  rb: TRadioButton;
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
          //Frage in "Titel"
         rg.Caption:= trim(Datamodule1.ADOQuery6.FieldByName('Frage').AsString);
         //Antworten in Radiobuttons
         rg.Items.Clear;
         rg.Items.Add(trim(Datamodule1.ADOQuery6.FieldByName('L1').AsString));
         rg.Items.Add(trim(Datamodule1.ADOQuery6.FieldByName('L2').AsString));
         rg.Items.Add(trim(Datamodule1.ADOQuery6.FieldByName('L3').AsString));
         Datamodule1.ADOQuery6.Next;
     end;
  end else
  begin
    application.MessageBox('Auswahlfehler!','Fehler');
  end;
so wird etwas dargestellt.
trim - weil bei jedem Feld ein #9 als erstes Zeichen steht.
Warum auch immer.
FieldByName habe ich gewählt - weil es lesbarer ist als die Indexe.

Das Problem das immer nur der erste Datensatz gelesen wird, das wurde ja schon angesprochen.

Grüße
Klaus
Klaus

Geändert von Klaus01 (10. Mär 2020 um 08:35 Uhr)
  Mit Zitat antworten Zitat