#1 Delphi Quellcode AdoQuery Next von Klaus 13.05.2010 13:15

Ich greife mit AdoQuery auf eine Access DB mit 2 Tabellen zu. In der Listbox erscheint jedoch immer nur 1 Datensatz obwohl ich bei AdoQuery mit Next durch alle Datensätze laufe. Woran kann das liegen?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
 
unit MainUnit;
 
interface
 
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Verbindung, Menus, DB, ADODB, StdCtrls;
 
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
Datenbankffnen1: TMenuItem;
Datenbankschlieen1: TMenuItem;
Edit1: TEdit;
Button1: TButton;
ListBox1: TListBox;
procedure Datenbankffnen1Click(Sender: TObject);
procedure Datenbankschlieen1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
AdoQuery1 : TADOQuery;
Dataset : TADODataset;
// Command : TADOCommand;
public
 
end;
 
var
Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Datenbankffnen1Click(Sender: TObject);
begin
if Verbindung.DataModule1.OpenDatabase=true then
MessageDlg('Die Datenbank konnte erfolgreich geöffnet werden',
mtInformation, [mbOK], 0)
else
MessageDlg('Die Datenbank konnte nicht geöffnet werden',
mtError, [mbOK], 0);
 
end;
 
procedure TForm1.Datenbankschlieen1Click(Sender: TObject);
begin
 
if Verbindung.DataModule1.OpenDatabase=true then
MessageDlg('Die Datenbank konnte erfolgreich geschlossen werden',
mtInformation, [mbOK], 0)
else
MessageDlg('Die Datenbank konnte nicht geschlossen werden',
mtError, [mbOK], 0);
 
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
begin
 
Verbindung.DataModule1.OpenDatabase;
Dataset := TAdoDataset.Create(nil);
// Command := TADOCommand.Create(nil);
ADOQuery1:= TADOQuery.Create(Application);
ADOQuery1.Connection:=Verbindung.DataModule1.ADOConnection1;
Dataset.Connection:=Verbindung.DataModule1.ADOConnection1;
// Command.Connection:=Verbindung.DataModule1.ADOConnection1;
 
ADOQuery1.SQL.Add('SELECT A.ID, A.Land, B.Waehrung FROM Laender A, Waehrung B WHERE A.ID = B.ID_Land');
 
with AdoQuery1 do
begin
AdoQuery1.Open;
AdoQuery1.First;
while not AdoQuery1.eof do
begin
ListBox1.Items.Text := AdoQuery1.FieldbyName('Land').AsString
+(' Währung = ') + AdoQuery1.FieldbyName('Waehrung').asstring;
 
AdoQuery1.Next;
 

end;
// end;
close;
free;
// FreeAndNil(AdoQuery1);
end;
Verbindung.DataModule1.CloseDatabase;
end;
 
end.
 

#2 RE: Delphi Quellcode AdoQuery Next von Justice59 14.05.2010 09:54

Hi,

mit "ListBox1.Items.Text ..." überschreibst du bei "Next" den jeweils letzten Eintrag.
Richtigerweise solltest du hier "ListBox1.Items.Add" benutzen.

Gruß

#3 RE: Delphi Quellcode AdoQuery Next von Klaus 14.05.2010 10:26

Vielen Dank. Das hat ja super geklappt.
Gruß

Xobor Ein Kostenloses Forum | Einfach ein Forum erstellen
Datenschutz