Hej igen
Hvad tænkte jeg dog på da jeg foreslog den "repeat-until"-løkke?!? Man kan
jo ikke altid garantere at en forespørgsel returnerer tupler, så derfor
trækker jeg det forslag tilbage. Som en erstatning foreslår jeg flg.
while-løkke:
recs.First;
while (not recs.Eof) do
begin
{Lav lækre operationer her}
recs.Next;
end;
Mvh.
Mikael Rune Jensen
--
Mikael Rune Jensen
Department of Computer Science
Aalborg University
http://www.cs.auc.dk/~mrj
"Mikael Rune Jensen" <mrj@cs.auc.dk> wrote in message
news:3d688ce2$0$1427$ba624c82@nntp02.dk.telia.net...
> Hej
>
> Jeg har fundet en løsning på mit problem! :)
> Jeg poster lige løsningen her i tilfælde af, at andre har samme problem!
>
> Iflg. Delphi/Kylix hjælpen skal man hente records ud fra et TSQLQuery
(eller
> TSQLDataSet) objekt således
> (det forudsættes at jeg har flg. variabel "recs : TSQLQuery"):
>
> recs.first
> for i := 0 to recs.RecordCount-1
> begin
> {Lav lækre operationer her}
> recs.Next;
> end;
>
> Men som jeg har skrevet i mit indlæg, så virker det ikke med
> aggregeringsforespørgsler!
> Jeg foreslå istedet at man _altid_ benytter flg. stump kode, da det virker
> med _alle_ typer forespørgsler (jeg har dog ikke testet Stored
Procedures!):
>
> recs.First;
> repeat
> {Lav lækre operationer her}
> recs.Next
> until (recs.Eof);
>
> Således får man altid kun gennemløbet det antal tupler, som forespørgslen
> rent faktisk returnerede.
>
> Mvh.
> Mikael Rune Jensen
>
> --
> Mikael Rune Jensen
> Department of Computer Science
> Aalborg University
>
http://www.cs.auc.dk/~mrj
>
>
>
>
>
>
>
> "Mikael Rune Jensen" <mrj@cs.auc.dk> wrote in message
> news:3d66687d$0$242$ba624c82@nntp03.dk.telia.net...
> > Hejsa
> >
> > Jeg har lige et rpørgsmål som vedrører brugen af dbExpress og
> > aggregeringsfuntioner i sin SQL.
> > Jeg benytter Delphi 6 / Kylix 2.
> >
> > Jeg har et program som tilgår en database (postgreSQL). For at hente
data
> > fra databasen bruger jeg et TSQLQuery objekt. Problemet jeg har er flg:
> >
> > - Jeg ønsker at udføre en aggregeringsforespørgsel (f.eks. "SELECT
> > COUNT(*) FROM minTabel").
> > - Hvis jeg eksekverer denne forespørgsel med mit TSQLQuery objekt, så
> kan
> > jeg ikke bruge RecordCount
> > til at få at vide hvor mange tupler min forespørgsel rent faktisk
> > returnerede!!! Jeg får f.eks. for ovenstående
> > forespørgsel at vide at der er 3000 tupler, selvom forespørgslen
rent
> > faktisk kun returnerer een tupel!!!
> >
> > Så kan man jo bare sige at jeg ved jeg laver en
> "..COUNT(*).."-forespørgsel
> > og derfor ved jeg at der kun kommer een tupel retur fra databasen! MEN
> dette
> > er ikke helt godt - hvis man f.eks kigger på grupperingsforespørgsler
> (SQL:
> > GROUP BY), så ved man jo ikke hvor mange tupler der kommer retur :(
> >
> > Er der nogen der ved, hvordan man kan få at vide hvor mange tupler ens
> > aggregerings-forespørgsel rent faktisk returnerer? Kan dette bare ikke
> lade
> > sig gøre med aggregeringsforespørgsler (når man bruger dbExpress)?
> >
> > Med venlig hilsen
> > Mikael Rune Jensen
> >
> >
> > --
> > Mikael Rune Jensen
> > Department of Computer Science
> > Aalborg University
> >
http://www.cs.auc.dk/~mrj
> >
> >
>
>