Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Schleife zum Ausgaben aller Werte einer DB (https://www.delphipraxis.net/39837-schleife-zum-ausgaben-aller-werte-einer-db.html)

Plague 8. Feb 2005 10:14

Datenbank: Paradox • Version: 7 • Zugriff über: Query Komponente

Schleife zum Ausgaben aller Werte einer DB
 
Hallo,

ich möchte alle Inhalte einer Datenbank in einem Listview ausgeben lassen.
Ich habe bis jetzt folgenden Quelltext dafür verwenden. Er werden jedoch nur der erste Datensatz ausgegeben.
Was ist falsch?
Wie bekomme ich alle anderen auf in mein Listview? Muss ich dafür eine Schleife benutzen? Wenn ja, wie?

Delphi-Quellcode:
Frame31.Query1.Active := false;
 Frame31.Query1.SQL.Clear;
 Frame31.Query1.SQL.Add('SELECT * FROM Benutzer');
 Frame31.Query1.Active := true;

 Frame31.ListView1.Items.Add.Caption := (Frame31.Query1.FieldByName('Benutzer').AsString);
 Frame31.ListView1.Items.Add.SubItems.Add(Frame31.Query1.FieldByName('Berechtigung').AsString);
Gruß
Thomas

Sharky 8. Feb 2005 10:17

Re: Schleife zum Ausgaben aller Werte einer DB
 
Hai Plague,

baue einfach eine While-Do Schleife:


Delphi-Quellcode:
Frame31.Query1.Active := false;
 Frame31.Query1.SQL.Clear;
 Frame31.Query1.SQL.Add('SELECT * FROM Benutzer');
 Frame31.Query1.Active := true;
 While Not (Frame31.Query1.Eof) do
 begin
   Frame31.ListView1.Items.Add.Caption := (Frame31.Query1.FieldByName('Benutzer').AsString);
   Frame31.ListView1.Items.Add.SubItems.Add(Frame31.Query1.FieldByName('Berechtigung').AsString);
   Frame31.Query1.Next;
 end;
[Edit] Warum schreibst Du eigentlich überall Frame31 davor?

Plague 8. Feb 2005 10:20

Re: Schleife zum Ausgaben aller Werte einer DB
 
Das hatte ich auch schon versucht. Jedoch wird das Programm so nicht erzeugt. Zwar wird kein Fehler angezeigt, jedoch wird das Programm nicht angezeigt...

Was kann ich tun? Gibt es noch eine andere Möglichkeit?

Gruß
Thomas

Plague 8. Feb 2005 10:21

Re: Schleife zum Ausgaben aller Werte einer DB
 
Die Frames nutze ich, weil der Befehl beim OnCreate Ereignis der Form ausgeführt wird, die Komponenten und das Listview befinden sich jedoch auf einem Frame.

Gruß
Thomas

Sharky 8. Feb 2005 10:22

Re: Schleife zum Ausgaben aller Werte einer DB
 
Zitat:

Zitat von Plague
Das hatte ich auch schon versucht. Jedoch wird das Programm so nicht erzeugt...

Dann muss es einen anderen Grund haben. Ich habe das schon 100mal so gemacht.

Plague 8. Feb 2005 10:25

Re: Schleife zum Ausgaben aller Werte einer DB
 
Hmm, das könnte vielleicht sein, aber komisch ist doch, dass es ohne die Schleife funktioniert... Oder?

Sharky 8. Feb 2005 10:34

Re: Schleife zum Ausgaben aller Werte einer DB
 
Zitat:

Zitat von Plague
Hmm, das könnte vielleicht sein, aber komisch ist doch, dass es ohne die Schleife funktioniert... Oder?

Wenn das Projekt nicht zu umfangreich ist kannst du es ja eventuell mal anhängen?

Plague 8. Feb 2005 10:40

Re: Schleife zum Ausgaben aller Werte einer DB
 
Doch es ist recht umfangreich...
Aber ich versuche es anderes!

Hier alle Komponenten die auf Frame31 sitzen:
- Query
- DataSource
- XP Style
- Image List
- Listview
- (mehrere) Checkbox
- Edit
- 4 Button

Geladen wird alles bei OnCreate von Form1:
- Quelltext siehe oben

Problem:
- While Schleife

Vielleicht hilft das bei der Lösung...

Sharky 8. Feb 2005 10:53

Re: Schleife zum Ausgaben aller Werte einer DB
 
Hai Plague,

so geht es bei mir (allerding bei mySQL mit Zeos) ohne Probleme. Man beachte wie ich ein Item erzeuge ;-)
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  item : TListItem;
begin
  with Frame21 do
  begin
    Query1.Close;
    Query1.SQL.Text := 'SELECT * FROM test1';
    Query1.Open;
    While not (Query1.Eof) do
    begin
      item := ListView1.Items.Add;
      item.Caption := Query1.FieldByName ('name').AsString;
      item.SubItems.Add(Query1.FieldByName ('vorname').AsString);
      Query1.Next;
    end;
  end;
end;

Plague 8. Feb 2005 11:10

Re: Schleife zum Ausgaben aller Werte einer DB
 
Zitat:

var
item : TListItem
Hier sagt mir Delphi, dass TListItem ein undefinierter Bezeichner ist. Ich habe es doch schon deklariert mit var, oder nicht?

Gruß
Thomas


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 Uhr.
Seite 1 von 2  1 2      

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