Avatar billede pfp Nybegynder
04. september 2002 - 17:39 Der er 8 kommentarer og
3 løsninger

Loop...

Hej,

Jeg har følgende kode som trækker et navn ud af en database og oprettet det som et ikon i min Listview:

procedure TForm2.Button2Click(Sender: TObject);
begin
D1.CommandText := 'SELECT * FROM Virksomheder';
D1.Open;
Kartoteksliste.Items.Add.Caption := D1.FieldByName('Kontaktperson').AsString;
end;

Men da jeg er absolut nybegynder vil jeg lige høre hvordan man laver en loop funktion? Altså det som i ASP svarer til f.eks.:

Do While Not rs.eof
' udskriv noget her
rs.movenext
Loop

Derudover er jeg meget interesseret i Delphi begynderartikler på nettet (helst danske) og især hvis der findes noget med hvordan man arbejder med Delphi og databaser.
Avatar billede freeall Nybegynder
04. september 2002 - 17:46 #1
Køb/lån denne bog. Den er virkelig god!
"Delphi 4" af Per Amdal Steffensen

http://www.systime.dk/titel.asp?udgivelseid=2563

Den er måske skrevet da Delphi 4 var mest aktuel, men kan stadig bruges. Det er et godt eksempel på en begynderbog.
Avatar billede dkn Nybegynder
04. september 2002 - 17:53 #2
var
  i: integer;
begin
D1.CommandText := 'SELECT * FROM Virksomheder';
D1.Open;
  d1.First;
  for I := 0 to d1.RecordCount do
  begin
Kartoteksliste.Items.Add.Caption := D1.FieldByName('Kontaktperson').AsString;
  d1.Next;
  end;
end;
Avatar billede snowball Novice
04. september 2002 - 18:58 #3
procedure TForm2.Button2Click(Sender: TObject);
begin
D1.CommandText := 'SELECT * FROM Virksomheder';
D1.Open;
While NOT D1.Eof do begin
  Kartoteksliste.Items.Add.Caption := D1.FieldByName('Kontaktperson').AsString;
  D1.Next;
end;
end;

Det var også en mulighed - så sparer du en variabel ;)

Snowball
Avatar billede dkn Nybegynder
04. september 2002 - 19:16 #4
Det er sandt. Men jeg kan nu godt lide at have min "i" med mig :)
Så ved man altid hvilket index man er ved.
Avatar billede lanstorp Nybegynder
04. september 2002 - 21:19 #5
procedure TForm2.Button2Click(Sender: TObject);
begin
D1.CommandText := 'SELECT * FROM Virksomheder';
D1.Open;
Repeat
  Kartoteksliste.Items.Add.Caption := D1.FieldByName('Kontaktperson').AsString;
  D1.Next;
Until D1.Eof;
end;

Er repeat ikke noget hurtigere end While
Avatar billede snowball Novice
04. september 2002 - 21:20 #6
Med mindre der er mange records i tabellen, så tror jeg ikke det er noget man lige kan mærke forskel på (hvis der overhovedet er nogen forskel!?) !

Snowball
Avatar billede dkn Nybegynder
04. september 2002 - 21:28 #7
Jeg tror heller ikke der er den store forskel.
Men som sagt har jeg den kun med for at vide hvilken record man er ved
Avatar billede pfp Nybegynder
05. september 2002 - 18:13 #8
Snowball smider du lige et svar så får i lige nogle point hver, hvis det er ok?
Avatar billede cms Nybegynder
05. september 2002 - 18:23 #9
Lanstorp > Din repeat checker først for EOF efter at første gennemløb er afviklet. Du vil altså få en fejl, hvis der ingen records er i datasettet
Avatar billede snowball Novice
05. september 2002 - 19:12 #10
Svar :)

Snowball
Avatar billede pfp Nybegynder
05. september 2002 - 19:57 #11
Tak for Jeres indlæg.

/peter
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester